home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / rbbs_pc / mapl0831.zip / MBS50831.MRG < prev    next >
Text File  |  1992-08-31  |  71KB  |  1,921 lines

  1. * ------------[ BLED merge (c) Ken Goosens ]-------------
  2. * Merge this against E:\RBBS\STOCK\RBBSSUB5.BAS to produce E:\RBBS\CHAT\RBBSSUB5.BAS
  3. * E:\RBBS\STOCK\RBBSSUB5.BAS:  Date 6-20-1992  Size 116575 bytes
  4. * ------------[ Created 08-31-1992 21:16:23 ]------------
  5. * REPLACING old line(s) by new
  6. ' $linesize:132
  7. ' $title: 'RBBSSUB5.BAS 17.4, Copyright 1986 - 92 by D. Thomas Mack'
  8. '  Copyright 1991 by D. Thomas Mack, all rights reserved.
  9. '  Name ...............: RBBSSUB5.BAS
  10. '  First Released .....: June 21, 1992
  11. '  Subsequent Releases.: 
  12. '  Copyright ..........: 1986 - 1992
  13. '  Purpose.............: The Remote Bulletin Board System for the IBM PC,
  14. '     RBBS-PC.BAS utilizes a lot of common subroutines.  Those that do not
  15. '     require error trapping are incorporated within RBBSSUB 2-5 as
  16. '     separately callable subroutines in order to free up as much
  17. '     code as possible within the 64K code segment used by RBBS-PC.BAS.
  18. '  Parameters..........: Most parameters are passed via a COMMON statement.
  19. '
  20. ' Subroutine  Line               Function of Subroutine
  21. '   Name     Number
  22. '  AddLink        63620  Adds a conference link
  23. * ------[ first line different ]------
  24. '  AskItems       63610  Get an list of items
  25. '  BinSearch      63520  Binary searches sorted file for a key value
  26. '  BreakFileName  63300  Break file name into component parts
  27. '  BufAsUnit      63500  Buffer out a string with CR's
  28. '  ChangeInit     63590  Get an integer value
  29. '  ChkAddedTime   63056  Check whether ok to extend time remaining
  30. '  ChkIfMsgHeader 63550  Checks whether record is a msg header
  31. '  DeLink         63620  Removes conference from linked ones
  32. '  DoorReturn     63100  Process door requests
  33. '  FdMacExe       63462  Executes a found macro
  34. '  FileSystem     20117  File System for RBBS-PC
  35. '  FindIt         63490  Check whether file exists and if so open as #2
  36. '  FormRead       63420  Read from file into a form
  37. '  LockAppend     63400  Prepare for a file append
  38. '  MacroExe       63460  Execute internal macro rather than user
  39. '  MarkItems      63600  Convert list of items into a "mark"
  40. '  MsgNameMatch   63540  Match name to one in msg header
  41. '  NextConf       63615  Sets up join to next conference link
  42. '  NoPath         63480  Detects whether string has a path in it
  43. '  RestoreCom     63310  Restore comm port after external program
  44. '  ReadMacro      63330  Read and process macro
  45. '  ReadParms      63490  Read certain number of parameters from file 2
  46. '  ReportEcho     63635  Reports echo preference of caller
  47. '  SayWelcome     63640  Welcomes callers on logon
  48. '  SetPrivileges  63650  Sets user privileges based on PASSWRDS
  49. '  SetPrompt      63470  Set prompts based on the user's security
  50. '  SetSessionTime 63645  Sets the session time
  51. '  SetSysOp       63625  Determines whether remote or global SysOp
  52. '  SetUserFlag    63560  Sets specified user flag
  53. '  SetUserPref    63630  Sets user preferences based on user record
  54. '  ShellExit      63320  Exit RBBS via shell
  55. '  SrchPasswrds   63652  Searches the PASSWRDS file
  56. '  TakeOffHook    63530  Take modem off hook
  57. '  TStats         69600  Display transfer stats from XFER-? file     ' MplXfer
  58. '  UnLockAppend   63410  Clean up after file append
  59. '  UnMarkItems    63610  Convert marked items into an input list
  60. '  VerifyAns      63510  Verify that string passes edits
  61. '  WildCard       63200  Match string to a pattern
  62. '
  63. '  $INCLUDE: 'RBBS-VAR.BAS'
  64. '
  65. * REPLACING old line(s) by new
  66. 20117 ' $SUBTITLE: 'FileSystem -- subroutine for RBBS-PC's file system'
  67. ' $PAGE
  68. '
  69. ' NAME    -- FileSystem
  70. '
  71. ' INPUTS  --       PARAMETER                 MEANING
  72. '             ZFileSysParm = 1  LIST THE SYSOP'S COMMENTS FILE
  73. '                                 2  L)IST DIRECTORY COMMAND
  74. '                                 3  D)OWNLOAD COMMAND
  75. '                                 4  RETURN FROM EXTERNAL PROTOCOLS
  76. '                                 5  U)PLOAD COMMAND
  77. '                                 6  S)CAN DIRECTORY COMMAND
  78. '                                 7  P)ERSONAL FILES COMMAND
  79. '                                 8  N)EW FILES COMMAND
  80. '                                 9  RETURN FROM EXTENDED DESCRIPTION
  81. * ------[ first line different ]------
  82. '                                 10  Batch Upload files
  83. '
  84. ' OUTPUTS -- ZFileSysParm = 1  COMMAND PROCESSED SUCCESSFULLY
  85. '                                2  RECYCLE TO TOP OF RBBS-PC (202)
  86. '                                3  PROCESS NEXT COMMAND (1200)
  87. '                                4  DENY USER ACCESS (1380)
  88. '                                5  HANDLE EXTENDED DESCRIP. (2008)
  89. '                                6  USER'S TIME EXCEEDED (10553)
  90. '                                7  Carrier DROPPED (10595)
  91. '
  92. ' PURPOSE -- To handle the RBBS-PC file system commands
  93. '
  94.       SUB FileSystem STATIC
  95.       ZFF = ZFileSysParm
  96.       ZFileSysParm = 1
  97.       ZActiveFMSDir$ = ""
  98.       CALL SaveUserActivity("F", ZNodeRecIndex, ZFalse)              ' CHAT0813
  99.       ON ZFF GOSUB 20119, _  ' HANDLER TO LIST COMMENTS TO SYSOP
  100.                   20150, _  ' L)IST DIRECTORY COMMAND HANDLER
  101.                   20180, _  ' D)OWNLOAD COMMAND HANDLER
  102.                   20263, _  ' RETURN FROM EXTERNAL Protocol'S
  103.                   20400, _  ' U)PLOAD COMMAND HANDLER
  104.                   21800, _  ' S)CAN DIRECTORY COMMAND HANDLER
  105.                   21850, _  ' P)ERSONAL FILES COMMAND HANDLER
  106.                   21860, _  ' N)EW FILES COMMAND HANDLER
  107.                   20705, _  ' RETURN FROM EXTENDED DESCRIPTIONS
  108.                   20410     ' 4)Batch Upload files
  109.       GOTO 21920
  110. * REPLACING old line(s) by new
  111. 20150 ZListDir = ZTrue
  112.       ListNew = ZFalse
  113.       SearchDate$ = ""
  114.       SearchString$ = ""
  115.       WasRS$ = ""
  116.       ShowDirOfDir = (ZLastIndex <= ZAnsIndex) AND NOT ZExpertUser
  117.       WasCK = 0
  118.       ZSearchingAll = ZFalse
  119. * ------[ first line different ]------
  120.       ZExtendedOff = Zfalse 'ZTrue   'Pe 10/27/91
  121. * REPLACING old line(s) by new
  122. * ------[ first line different ]------
  123. 20155 IF ZDnldCompleted AND ZAutoEnd = 1 THEN _   'Pe 02/05/90
  124.         ZFileSysParm = 7: _
  125.         RETURN
  126.  IF ListNew OR ZAnsIndex > 255 THEN _   'Pe 12/12/91
  127.          RETURN                         'Pe 12/12/91
  128.       CALL GetDirs (ZFalse)    'Pe 02/04/90
  129.       IF ZWasQ = 0 THEN _
  130.          RETURN
  131.       ShowDirOfDir = ZFalse
  132.       CALL ConvertDir (ZAnsIndex)
  133.       WasQX = ZLastIndex
  134. * REPLACING old line(s) by new
  135. 20159 IF ZAnsIndex < ZLastIndex THEN _
  136.          GOTO 20155
  137.       ZSearchingAll = ZFalse
  138.       CALL CmdStackPushPop (1)
  139.       ZLastIndex = 0
  140.       IF ZNo OR InFMS OR (ZFileNameHold$ = ZDirPrefix$) THEN _
  141.          GOTO 20155
  142.       GOSUB 20178
  143.       CALL QuickTPut (ZEmphasizeOff$,0)
  144.       ZTurboKey = - ZTurboKeyUser
  145. * ------[ first line different ]------
  146. ZOutTxt$ = "End list.  L)ist, T)ype, V)iew, M)ark, D)nld, [Q]uit"     'Pe 05/30/91
  147.       GOSUB 21667
  148.       CALL AraAllCaps (ZUserIn$(),1)
  149. '******************************* Pe 02/15/90 **********************
  150.      IF ZUserIn$(1) = "T"  AND _
  151.          ZUserSecLevel >= ZOptSec(19 - 20 * (ZMenuIndex = 6)) THEN _
  152.          ZAnsIndex = 1 : _   
  153.         CALL TypeFile : _
  154.        RETURN
  155.      IF ZUserIn$(1) = "V"  AND _
  156.          ZUserSecLevel >= ZOptSec(19 - 20 * (ZMenuIndex = 6)) THEN _
  157.          ZAnsIndex = 1 : _   
  158.         CALL GetArc : _
  159.        RETURN
  160. '******************************************************************
  161.       IF ZUserIn$(1) = "L" THEN _
  162.          ZUserIn$(ZAnsIndex) = WasA1$ : _
  163.         GOTO 20161
  164.       Temp$ = ZUserIn$(1)
  165.       Temp = (ZUserIn$(1) = "D")
  166.       CALL AskItems ("MD",Temp$,ZTrue,"file",ZMarkedFiles$)
  167.       IF ZWasQ = 0 OR ZUserSecLevel < ZOptSec(19 - 20 * (ZMenuIndex = 6)) THEN _
  168.          GOTO 20160
  169.       IF Temp THEN _
  170.          GOSUB 20202 _
  171.       ELSE IF LEN(ZUserIn$(1)) > 1 THEN _
  172.          ZAnsIndex = 1 : _
  173.          GOSUB 20202
  174. * REPLACING old line(s) by new
  175. 20162 CALL CmdStackPushPop (1)         ' save dir list list processing
  176.       CALL FMS (ZWasZ$,SearchString$,SearchDate$,InFMS, _
  177.                 ZCategoryName$(),ZCategoryCode$(),ZCategoryDesc$(),_
  178.                 DnldFlag,CatFound,ZAnsIndex)
  179.       WHILE DnldFlag > 0 AND ZSubParm > -1
  180.          GOSUB 20202
  181.          IF ZFileSysParm > 1 THEN _
  182.             RETURN
  183. * ------[ first line different ]------
  184.         IF ZDnldCompleted and ZAutoEnd = 1 THEN _  'Pe 02/05/90
  185.            RETURN       ' AUTOLOGOFF MOD
  186.          WasX$ = ZCategoryCode$(CatFound)
  187.          CALL DispUpDir (WasX$,SearchString$,SearchDate$,DnldFlag,ZAnsIndex)
  188.          CALL CheckTimeRemain (MinsRemaining)
  189.          IF ZSubParm = -1 THEN _
  190.             ZFileSysParm = 6 : _
  191.             RETURN
  192.          CALL Carrier
  193.       WEND
  194.       IF ZSubParm = -1 THEN _
  195.          ZFileSysParm = 7 : _
  196.          RETURN
  197.       IF ZAnsIndex > 255 OR ZRet THEN _
  198.          ZLastIndex = 0 : _
  199.          RETURN
  200.       CALL CmdStackPushPop (2)        ' restore dir list list processing
  201.       ZActiveFMSDir$ = ""
  202.       IF InFMS THEN _
  203.          GOTO 20159
  204.       IF ZUserSecLevel < ZMinSecToView THEN _
  205.          IF ZFileNameHold$ = ZUpldDirCheck$ THEN _
  206.         ZOutTxt$ = "Listing of Upload Directory Available to SYSOP Only" : _ 'DGS-TXT
  207.         GOSUB 21640 : _                                           'DGS-TXT
  208.         ZNo = ZTrue : _                                           'DGS-TXT
  209.         GOTO 20155                                                'DGS-TXT
  210.       ZFileNameHold$ = ZUserIn$(ZAnsIndex)
  211.       IF ZLimitSearchToFMS THEN _
  212.          GOTO 20166
  213.       IF NOT ZSearchingAll THEN _
  214.          IF ZFileNameHold$ = "ALL" OR ZFileNameHold$ = "A" THEN _
  215.             ZSearchingAll = ZTrue : _
  216.             GOSUB 21890 : _
  217.             GOTO 20157
  218.       CALL BadFile (ZFileNameHold$,BadFileNameIndex)
  219.       ON BadFileNameIndex GOTO 20163,20172,20176
  220. * REPLACING old line(s) by new
  221. 20166 ZFileName$ = ZCurDirPath$ + _
  222.                    ZFileNameHold$ + ".MNU"
  223. * ------[ first line different ]------
  224.       CALL FindIt (ZFileName$)
  225.       IF ZOK THEN _
  226.          CALL BufFile (ZFileName$,ZAnsIndex) : _
  227.          GOTO 20155
  228.       IF ZAltdirExtension$ = "" THEN _
  229.          GOTO 20172
  230.       ZFileName$ = ZCurDirPath$ + _
  231.                    ZFileNameHold$ + _
  232.                    "." + _
  233.                    ZAltdirExtension$
  234.       CALL Graphic (ZFileName$)
  235.       IF NOT ZOK THEN _
  236.          GOTO 20172
  237. * REPLACING old line(s) by new
  238. 20202 IF (ZTimeLock AND 2) AND (NOT TimeLockExempt) AND NOT ZHasPrivDoor THEN _
  239.          CALL TimeLock : _
  240.          IF NOT ZOK THEN _
  241.             RETURN
  242.       LastDnld = ZLastIndex
  243.       FirstDnld = ZAnsIndex
  244.       ZCmdTransfer$ = ""
  245. * ------[ first line different ]------
  246.       ZAnsIndex = ZLastIndex
  247.       GOSUB 20470
  248.       LastDnld = LastDnld + (WasX > 0)
  249.       BatchBytes# = 0
  250.       BatchBlocks# = 0
  251.       ZDownFiles = 0
  252.       CALL KillWork (ZNodeWorkFile$)
  253.       ZErrCode = 0
  254.       ZAnsIndex = FirstDnld
  255. * REPLACING old line(s) by new
  256. 20205 MarkingTime = (ZAnsIndex = FirstDnld OR NOT ZConcatFIles)
  257.       ZFileName$ = ZUserIn$(ZAnsIndex)
  258. * ------[ first line different ]------
  259.       CALL AllCaps(ZFileName$)              'ANSIEd
  260.       CALL Remove (ZFileName$,", ")
  261.       ZViolation$ = "Download "
  262.       IF ZListOnly THEN _
  263.          CALL BreakFileName (ZFileName$,DR$,ZWasY$,WasX$,ZTrue) : _
  264.          ZFileNameHold$ = ZWasY$ + _
  265.                            WasX$ : _
  266.          GOTO 20235
  267.       ZFileNameHold$ = ZFileName$
  268.       TmpFileNameHold$ = ZFileNameHold$                            'Pe 04/25/92
  269.       CALL BadFile (ZFileName$,BadFileNameIndex)
  270.       ON BadFileNameIndex GOTO 20220,20231,20233
  271. * INSERTING new line(s)
  272. 20210 CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount + _      'Pe 06/01/92
  273.                       ((ZUserSecLevel < ZMinSecToView) OR _       'Pe 06/01/92
  274.                        NOT ZCanDnldFromUp),MarkingTime,"D")       'Pe 06/01/92
  275.        RETURN                                                     'Pe 06/01/92 
  276. * REPLACING old line(s) by new
  277. * ------[ first line different ]------
  278. 20220 IF INSTR(ZFileName$,ZDefaultExtension$)= 0 Then             'Pe 06/04/92
  279.       GOSUB 20210                                                 'Pe 06/02/92
  280.       IF ZOK THEN _                                               'Pe 06/02/92
  281.         GOTO 20235                                                'Pe 06/02/92
  282.       IF ZDotFlag THEN _                                          'Pe 06/02/92
  283.          RETURN                                                   'Pe 06/02/92
  284.      End if                                                       'Pe 06/04/92
  285.          WasI = 1                                                 'Pe 06/01/92
  286. * DELETING old line(s)
  287. 20222
  288. * REPLACING old line(s) by new
  289. * ------[ first line different ]------
  290. 20225 CALL BreakFileName (ZFileName$,DR$,WasX$,Extension$,ZFalse) 'Pe 06/01/92
  291.         WasJ = INSTR(Mid$(ZCompressedExt$+". ",WasI),".")        'Pe 04/18/92
  292.        IF WasJ = 0 THEN _                                        'Pe 04/18/92
  293.           GOTO 20231                                             'Pe 06/04/92
  294.               Check$ = MID$(ZCompressedExt$,WasI,WasJ-1)         'Pe 04/28/92
  295.           WasI = WasI + WasJ                                     'Pe 04/18/92
  296.        ZFileName$ = WasX$ + "." + Check$                         'Pe 04/18/92
  297.       ZFileNameHold$ = ZFileName$                                'Pe 04/18/92
  298.      GOSUB 20210                                                 'Pe 06/01/92
  299.  IF ZOK THEN _                                                   'Pe 06/01/92
  300.        GOTO 20235                                                'Pe 06/01/92
  301.      IF ZDotFlag THEN _                                          'Pe 06/01/92
  302.         RETURN                                                   'Pe 06/01/92
  303.       GOTO 20225                                                 'Pe 06/01/92
  304. * REPLACING old line(s) by new
  305. * ------[ first line different ]------
  306. 20231 ZOutTxt$ = TmpFileNameHold$ + _                             'Pe 04/18/92
  307.            " not found!"
  308.       CALL UpdtCalr (ZOutTxt$,2)
  309.       ZOutTxt$ = ZOutTxt$ + _
  310.            " Correct name"+ZPressEnterExpert$
  311.       ZSuspendAutoLogoff = ZTrue
  312.       GOSUB 21660
  313.       ZSuspendAutoLogoff = ZFalse
  314.       IF ZFileSysParm > 1 THEN _
  315.          RETURN
  316.       IF ZWasQ=0 THEN _
  317.          IF ZBatchTransfer AND ZAnsIndex >= LastDnld THEN _
  318.             GOTO 20262 _
  319.          ELSE ZAutoLogOffReq = ZFalse : _
  320.               RETURN
  321.       ZUserIn$(ZAnsIndex) = ZUserIn$(1)
  322.       GOTO 20205
  323. * REPLACING old line(s) by new
  324. 20236 ZLine25$ = "(D) " + _
  325.                  ZWasZ$
  326. * ------[ first line different ]------
  327. '
  328. ' *  TEST FOR DOWNLOAD SECURITY
  329. '
  330.       CALL OpenWork (2,ZFileSecFile$)
  331.       IF ZErrCode = 53 THEN _
  332.          CALL UpdtCalr ("Missing file " + ZFileSecFile$,2) : _
  333.          GOTO 20247
  334. * REPLACING old line(s) by new
  335. 20244 IF ZUserSecLevel < VAL(ZWorkAra$(2)) THEN _
  336.          GOTO 20245
  337.       FilePswd$ = ZWorkAra$(3)
  338.       IF FilePswd$ = "" THEN _
  339.          GOTO 20247
  340. * ------[ first line different ]------
  341.       CALL AraAllCaps (ZUserIn$(),1)
  342.       IF ZUserIn$(1) = FilePswd$ THEN _
  343.          GOTO 20247
  344.       ZOutTxt$ = "Enter PASSWORD to download " + _
  345.            ZFileName$
  346.       GOSUB 21660
  347.       IF ZFileSysParm > 1 THEN _
  348.          RETURN
  349.       IF ZWasQ = 0 THEN _
  350.          RETURN
  351.       CALL AllCaps (ZUserIn$(1))
  352.       IF ZUserIn$(1) = FilePswd$ THEN _
  353.          GOTO 20247
  354. * REPLACING old line(s) by new
  355. 20247 ZWasDF = 0
  356.       CALL BreakFileName (ZFileName$,DR$,WasX$,Extension$,ZFalse)
  357. * ------[ first line different ]------
  358.  IF INSTR("...WRK.FW .ARC.EXE.COM.OBJ.WKS.LBR.ZIP.PAK.ZOO.ARJ.LZH.","."+Extension$+".") > 2 OR _
  359.          MID$(Extension$,2,1) = "Q" OR _
  360.          (ZRequireNonASCII AND Extension$ = "BAS") THEN _
  361.             ZWasDF = ZTrue
  362. * REPLACING old line(s) by new
  363. 20260 ZTransferFunction = 1
  364. * ------[ first line different ]------
  365.       ZWasBatchTransfer = ZFalse             'Pe 03/02/92
  366.       ZUpBatchTransfer = ZFalse              'Pe 03/02/92
  367.       GOSUB 21790
  368.       IF ZFileSysParm > 1 THEN _
  369.          RETURN
  370.          ZBatchTransfer = ZBatchProto                     'Pe Batch Mod
  371.       IF ZBatchTransfer AND ZCmdTransfer$ = "" THEN _
  372.          ZCmdTransfer$ = ZWasFT$
  373.       ON INSTR("AXCYN",ZInternalProt$) GOTO _
  374.          20340, _              ' ASCII DOWNLOAD
  375.          20290, _              ' Xmodem
  376.          20290, _              ' Xmodem CRC
  377.          20270, _              ' YMODEM
  378.          21700                 ' NONE - CANCEL
  379. '
  380. ' *  EXTERNAL Protocol Downloads/Uploads
  381. '
  382. * REPLACING old line(s) by new
  383. 20262 IF ZBatchTransfer THEN _
  384.          IF ZAnsIndex < LastDnld THEN _
  385.             RETURN _
  386.          ELSE ZBlocksInFile# = BatchBlocks# : _
  387.               ZBytesInFile# = BatchBytes# : _
  388.               ZNumDnldBytes! = BatchBytes# : _
  389.               IF ZBytesInFile# < 1 THEN _
  390.                  RETURN _
  391.               ELSE GOSUB 20780 : _
  392.                    IF ZFileSysParm > 1 OR NOT ZOK THEN _
  393.                       RETURN
  394. * ------[ first line different ]------
  395.          IF ZAbort THEN _
  396.             ZAbort = ZFalse : _              'Pe 01/26/92
  397.             ZDnldCompleted = ZFalse : _
  398.             GOSUB 21760 : _
  399.             RETURN
  400.       GOSUB 20337
  401.       CALL Transfer
  402. * REPLACING old line(s) by new
  403. 20263 IF ZPrivateDoor THEN _
  404.          ZCmdTransfer$ = ZWasFT$ : _
  405.          CALL XferType (2,ZTrue) : _
  406.          ZCmdTransfer$ = ""
  407.       CALL OpenWork (2,"XFER-" + ZNodeID$ + ".DEF")
  408.       IF ZErrCode <> 0 THEN _
  409.          GOTO 20267
  410.       CALL ReadParms (ZWorkAra$(), ZFailureParm, 1)
  411. * ------[ first line different ]------
  412.  
  413.       IF ZErrCode <> 0 THEN _
  414.          GOTO 20267
  415.       CLOSE 2
  416.       IF NOT ZFakeXRpt THEN _                  'Pe 03/26/92
  417.         Call TStats                            'Pe 03/26/92
  418.       CALL KillWork ("XFER-" + ZNodeID$ + ".DEF")
  419. * REPLACING old line(s) by new
  420. 20265 IF ZTransferFunction = 2 THEN _
  421.          IF INSTR(ZWorkAra$(ZFailureParm),ZFailureString$) <> 1 THEN _
  422.             GOTO 20700 _
  423.          ELSE GOTO 20730
  424.       IF ZTransferFunction = 1 THEN _
  425. * ------[ first line different ]------
  426.         ZDnldCompleted = (INSTR(ZWorkAra$(ZFailureParm),ZFailureString$) <> 1)  'Pe 05/30/91
  427.       GOSUB 21760
  428.       CALL Carrier
  429.       IF ZSubParm = -1 THEN _
  430.          ZFileSysParm = 7
  431.       RETURN
  432. '
  433. ' *  XFER FILE NOT Found
  434. '
  435. * REPLACING old line(s) by new
  436. * ------[ first line different ]------
  437. 20292 Call QuickTput1 (" Sorry NO internal Protocols available ") : _
  438.       Call Delaytime (3) : _
  439.       Return
  440. * DELETING old line(s)
  441. 20294
  442. * DELETING old line(s)
  443. 20325
  444. * REPLACING old line(s) by new
  445. * ------[ first line different ]------
  446. 20330 GOSUB 20337
  447.       ZOutTxt$ = ZProtoPrompt$ + _
  448.             " " + WasA1$ + _
  449.             " of " + _
  450.             ZFileNameHold$ + _
  451.             " ready.  <Ctrl X> aborts"
  452.       GOSUB 21650
  453.       RETURN
  454. * DELETING old line(s)
  455. 20335
  456. * REPLACING old line(s) by new
  457. 20340 IF ZWasDF THEN _
  458.          ZOutTxt$ = "Switch to a non-ascii protocol" : _
  459.          GOSUB 21650 : _
  460.          GOTO 21700
  461.       GOSUB 20750
  462.       IF ZFileSysParm > 1 OR NOT ZOK THEN _
  463.          RETURN
  464.       CALL OpenWork (2,ZFileName$)
  465.       IF (ZAnsIndex = FirstDnld OR NOT ZConcatFIles) THEN _
  466.          GOSUB 20337 : _
  467.          ZOutTxt$ = "^X aborts.  ^S suspends ^Q resumes" : _
  468.          GOSUB 21640 : _
  469.          IF ZFileSysParm > 1 THEN _
  470.             RETURN _
  471.          ELSE ZOutTxt$ = ZProtoPrompt$ + " SEND of " + _
  472.               ZFileNameHold$ + _
  473.               " ready. Press Any Key to start" : _
  474.          ZTurboKey = 2 : _
  475.          ZForceKeyboard = ZTrue : _
  476.          ZSuspendAutologoff = ZTrue : _
  477.          GOSUB 21660 : _
  478.          ZSuspendAutologoff = ZFalse : _
  479. * ------[ first line different ]------
  480.          IF ZFileSysParm > 1 THEN _
  481.             RETURN
  482. * REPLACING old line(s) by new
  483. 20380 ZStopInterrupts = ZFalse
  484.       WasTU = 0
  485.       SWAP WasTU,ZPageLength
  486.       CALL BufFile (ZFileName$,WasX)
  487.       SWAP WasTU,ZPageLength
  488.       ZNonStop = (ZPageLength < 1)
  489.       IF StopFile THEN _
  490. * ------[ first line different ]------
  491.          ZDnldCompleted = ZFalse : _   'Pe 05/29/91
  492.          GOTO 20390
  493. * REPLACING old line(s) by new
  494. 20385 ZDnldCompleted = ZTrue   'Pe 05/30/91
  495. * REPLACING old line(s) by new
  496. 20400 CALL TimeBack (1)
  497. * ------[ first line different ]------
  498.       ZUpBatchTransfer = ZFalse     'Pe 12/08/91
  499.       ZWasBatchTransfer = ZFalse
  500.       GOSUB 20420
  501.       ZAutoLogOffReq = 0
  502.       FirstUpld = ZAnsIndex
  503.       GOTO 20430
  504. * INSERTING new line(s)
  505. 20410 CALL TimeBack (1)
  506.       CALL KillWork (ZBatchWorkFile$)                 'Pe Batchup mod 
  507.       ZErrCode = 0
  508.       ZUpBatchTransfer = ZTrue
  509.       Call Killwork ("BatchUp" +ZNodeID$ +".LST")
  510.       ZErrCode = 0
  511.       ZAutoLogOffReq = 0
  512. '
  513. ' changes for 12/28/91
  514. '
  515. If LEN(ZUserIn$) < 3 Then _
  516.       CALL Batchit : _
  517.       FirstUpld = 2 : _
  518.       LastUpld = ZLastIndex : _
  519.       GOTO 20430
  520.      FirstUpld = ZAnsIndex
  521.     Goto 20430
  522.  
  523. * REPLACING old line(s) by new
  524. * ------[ first line different ]------
  525. 20420 ZOutTxt$ = "Upload what file"
  526.       GOSUB 21667
  527.       RETURN
  528. '
  529. ' *  SEARCH FOR DUPLICATE FILENAME
  530. '
  531. * REPLACING old line(s) by new
  532. 20432 FOR ZAnsIndex = FirstUpld TO LastUpld
  533.          IndexSave = ZAnsIndex
  534.          GOSUB 20471
  535.          GOSUB 20435
  536.          FirstUpld = FirstUpld + 1
  537.          IF ZFileSysParm > 1 THEN _
  538.             IndexSave = LastUpld + 1
  539.          ZAnsIndex = IndexSave
  540. * ------[ first line different ]------
  541.      NEXT
  542.     ZCmdTransfer$ = ""
  543.       RETURN
  544. * REPLACING old line(s) by new
  545. 20435 ZFileNameHold$ = ZUserIn$(ZAnsIndex)
  546.       ExtSrch = ZFalse
  547.       IF INSTR(ZFileNameHold$,".") = 0 THEN _
  548.          ZFileNameHold$ = ZFileNameHold$ + "." + ZDefaultExtension$
  549.       CALL AllCaps(ZFileNameHold$)
  550.       ZFileName$ = ZFileNameHold$
  551.       ZViolation$ = "Upload "
  552.       CALL NoPath (ZFileName$,BadFileNameIndex)
  553.       IF BadFileNameIndex THEN _
  554.          GOTO 20451
  555.       CALL BadFile (ZFileName$,BadFileNameIndex)
  556.       ON BadFileNameIndex GOTO 20440,20451,20515
  557. * ------[ first line different ]------
  558. '
  559. ' Following mod was orig from DGS-UNW mod....updated for Maple code 12/15/91
  560. * REPLACING old line(s) by new
  561. * ------[ first line different ]------
  562. 20440 TmpName$ = ZDirPath$+"NOTHANX.DEF"                         'Pe 06/01/92
  563.       CALL FindIt (TmpName$)                                        'DGS-UNW
  564.       IF ZOK THEN
  565.        CALL QuickTPut1 ("Checking to see if "+ZFileNameHold$ + " is in a list of Un-Wanted Files...")
  566.         CALL OpenWork (2,TmpName$)
  567.          HaveFile$ = ""
  568.           FileInList = ZFalse
  569.             WHILE NOT EOF(2) AND NOT FileInList
  570.          INPUT #2, HaveFile$
  571.         CALL AllCaps (HaveFile$)
  572.           FileInList = (INSTR(ZFileNameHold$,HaveFile$) > 0)
  573.      WEND
  574.        CLOSE 2
  575.       END IF
  576.      IF FileInList THEN _
  577.     GOTO 20443
  578. '
  579. ' If you want to eliminate either one of these routines just comment
  580. ' out the one you don't want....NOTHANX.DEF must reside in RBBS's Subdir
  581. ' the OFFLINE.DIR were your Master FMS dir is kept....you can change names
  582. ' as you see fit. 
  583. '                  !!DO NOT COMMENT OUT THE LINE NUMBER !!
  584. '
  585.  TmpName$ = ZDirPath$+"OFFLINE.DIR"                            'PE mode2 to
  586.        CALL FindIt (TmpName$)                                        'DGS-UNW
  587.         IF ZOK THEN
  588.           CALL QuickTPut1 ("Checking OFFLINE file list for "+ZFileNameHold$ )
  589.            CALL OpenWork (2,TmpName$)
  590.             HaveFile$ = ""
  591.              FileInList = ZFalse
  592.                WHILE NOT EOF(2) AND NOT FileInList
  593.                 LINE INPUT #2, HaveFile$                     'Pe 12/15/91
  594.                  CALL AllCaps (HaveFile$)
  595.                   StopReading = INSTR(HaveFile$,".")
  596.                    HaveFile$ = Left$(HaveFile$,StopReading)    'Pe 12/16/91
  597.                   Search = INSTR(ZFileNameHold$,".")
  598.                   Search$ = Left$(ZFileNameHold$,Search)
  599.                  If Search$ = HaveFile$ THEN_
  600.                 FileInList = ZTrue
  601.              WEND
  602.       CLOSE 2
  603.         END IF
  604. '
  605. '    next 2 lines
  606. '    Allow Sysop to update FMS listing with a local upload
  607. '    even if the filename exists in the NOTHANX.DEF OR OFFLINE.DIR
  608. '
  609. * INSERTING new line(s)
  610. 20443   If ZSysop Then _
  611.             FileinList = ZFalse            'Pe 12/15/91
  612.         IF FileInList THEN _
  613.            CALL BufFile (ZHelpPath$+"NOTHANX.MSG",WasX) : _  'Pe 06/01/92
  614.            CALL DelayTime (3) : _
  615.            GOTO 20453
  616.         CALL Carrier
  617.         IF ZSubParm = -1 THEN _
  618.            ZFileSysParm = 7 : _
  619.            RETURN
  620.       PersFile$ = ZFileName$                                     'Pe 08/09/91
  621.       ZFileName$ = ZPersonalDrvPath$ + PersFile$                 'Pe 08/08/91
  622.       Call FindFile (ZFileName$,ZOK)                             'Pe 08/09/91
  623.       IF ZOK THEN Goto 20452                                     'Pe 08/09/91
  624.       ZFileName$ = PersFile$                                     'Pe 08/09/91
  625.       CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount,ZTrue,"U")
  626. * REPLACING old line(s) by new
  627. 20450 IF Extension$ <> Check$ THEN _
  628. * ------[ first line different ]------
  629.       CALL RotorsDir (WasX$ + "." + Check$,ZSubDir$(),ZSubDirCount,ZTrue,"U") : _
  630.          IF ZOK THEN _
  631.             ExtSrch = ZTrue : _
  632.             GOTO 20452
  633.       GOTO 20447
  634. * REPLACING old line(s) by new
  635. 20454 CALL QuickTPut1 ("Thanks, but we already have " + ZFileNameHold$)
  636. * ------[ first line different ]------
  637.       CALL DelayTime (3)  'Pe 08/04/91
  638.       PersFile$ = ""      'Pe 08/08/91
  639.       CALL UpdtCalr ("Upload duplicate " + ZFileNameHold$,1)
  640.       RETURN
  641. * REPLACING old line(s) by new
  642. 20455 ZOutTxt$ = "Add new directory entry (Y,[N])"
  643.       ZTurboKey = - ZTurboKeyUser
  644.       GOSUB 21660
  645.       IF ZFileSysParm > 1 THEN _
  646.          RETURN
  647.       IF NOT ZYes THEN _
  648.          RETURN
  649.       GOSUB 20460
  650.       IF WhoTo$ = "" THEN _
  651.          RETURN
  652.       AddingDescOnly = ZTrue
  653. * ------[ first line different ]------
  654.       ZWasBatchTransfer = ZFalse    'Pe 01/03/92
  655.       ZWasFT$ = "l"
  656. CALL UpdtUpload (ZCategoryName$(),ZCategoryCode$(),ZLinesInMsg,1) 'UPL-MOD pe082690
  657. 'Call AutoLogoff    'Pe 10/20/91 Test mod... remove when working
  658.       GOSUB 20702
  659.       RETURN
  660. * REPLACING old line(s) by new
  661. * ------[ first line different ]------
  662. 20460 CALL KillWork (ZNodeWorkFile$)      'Pe BatchUp
  663.       WhoTo$ = ""
  664.      IF ZUpBatchTransfer THEN _          'Pe 04/29/92
  665.       WhoTo$ = "ALL"                     'Pe 04/29/92
  666.       WasY$ = ZFileName$
  667.       IF ZUserSecLevel >= ZMinSecPersUpld THEN _
  668.          CALL SetWhoTo (ZTrue,WhoTo$,"",RcvrRecNum,Found) _
  669.       ELSE WhoTo$ = "ALL"
  670.       ZFileName$ = WasY$
  671.       RETURN
  672. * REPLACING old line(s) by new
  673. 20471 ZWasZ$ = ZUserIn$(ZAnsIndex)
  674.       CALL AllCaps(ZWasZ$)
  675.       WasX = 0
  676.       IF LEN (ZWasZ$) = 1 THEN _
  677.          WasX = INSTR(ZDefaultXfer$,ZWasZ$) : _
  678.          IF WasX > 0 THEN _
  679.             ZAnsIndex = ZAnsIndex + 1 : _
  680.             IndexSave = IndexSave + 1 : _
  681.             ZCmdTransfer$ = ZWasZ$ : _
  682. * ------[ first line different ]------
  683.             IF MID$(ZInternalEquiv$,WasX,1) = "N" THEN _
  684.                ZCmdTransfer$ = ""
  685.       RETURN
  686. * REPLACING old line(s) by new
  687. 20475 ZWasZ$ = ZUpldDriveFile$
  688.       CALL FindFree
  689.       IF VAL(ZFreeSpace$) < 4096 THEN _
  690.          GOSUB 21895 : _
  691.          IndexSave = ZLastIndex + 1 : _
  692.          RETURN
  693.       ZOutTxt$ = "Upload disk has" + _
  694.            ZFreeSpace$
  695.       GOSUB 21640
  696.       IF ZFileSysParm > 1 THEN _
  697.          RETURN
  698. * ------[ first line different ]------
  699.     GOSUB 20460                                                  'Pe 08/08/91
  700.       If ZMplPersUpload = ZTrue Then _                           'Pe 08/09/91
  701.       ZFileName$ = ZPersonalDrvPath$ + PersFile$                 'Pe 08/08/91
  702. '*****************
  703. CALL UpdtUpload (ZCategoryName$(),ZCategoryCode$(),ZLinesInMsg,1)  '<++++++
  704. '*****************
  705. * INSERTING new line(s)
  706. 20476 IF ZAbort THEN _     'Pe 09/07/91 added line number
  707.       ZAbort = ZFalse : _   'PE 12/14/88
  708.         RETURN
  709.       ZLine25$ = "(U) " + _
  710.                  ZFileNameHold$
  711.       ZSubParm = 2
  712.       CALL Line25
  713.       ZOutTxt$ = ""
  714.       ZOK = ZTrue
  715. * REPLACING old line(s) by new
  716. * ------[ first line different ]------
  717. 20500  ZTransferFunction = 2
  718.       GOSUB 21790
  719.       IF ZFileSysParm > 1 THEN _
  720.          RETURN
  721.       IF ZInternalProt$ = "N" THEN _                       'Pe 08/08/91
  722.          GOTO 21700                                        'Pe 08/08/91
  723. IF NOT ZUpBatchTransfer THEN _
  724. CALL AutoLogOff            'Pe 02/04/90
  725.       IF ZAutoEnd = 2 THEN _
  726.          RETURN
  727.       ON INSTR("AXCYN",ZInternalProt$) GOTO _
  728.          20560, _         ' ASCII UPLOAD
  729.          20542, _         ' Xmodem
  730.          20542, _         ' Xmodem CRC
  731.          20542, _         ' YMODEM
  732.          20735            ' NONE - CANCEL
  733.       GOTO 20261
  734. * REPLACING old line(s) by new
  735. * ------[ first line different ]------
  736. 20542 Call QuickTput1 ("Sorry NO Internal Protocols avaialble ") : _
  737.       Call Delaytime (3) : _
  738.       Return
  739. '
  740. ' *  ASCII UPLOAD
  741. '
  742. * REPLACING old line(s) by new
  743. 20700 GOSUB 21780
  744.       IF ZFileSysParm > 1 THEN _
  745.          RETURN
  746. * ------[ first line different ]------
  747. '
  748. '20702 IF ZWasFT$ = "l" THEN _          'Pe 12/28/91
  749. '         ZWasBatchTransfer = ZFalse    'Pe 12/28/91
  750. '
  751. 'Line number moved for Local Uploads    'Pe 01/03/91
  752. '
  753.       IF ZWasBatchTransfer Then _
  754.         CALL BatchUpload (ZDesc$,ZUCat$,2) : _
  755.         GOTO 20703
  756. * REPLACING old line(s) by new
  757. * ------[ first line different ]------
  758. 20702 CALL UpdtUpload (ZCategoryName$(),ZCategoryCode$(), ZLinesInMsg,2) 'Pe 02/03/90
  759. '
  760. * INSERTING new line(s)
  761. 20703 IF ZAutoEnd = 1 THEN _                'AUTO-UP MOD
  762.          ZFileSysParm = 7: _             'Pe BatchUp 09/12/91
  763.          ZDnldCompleted = ZTrue : _      'Pe BatchUp 09/12/91
  764.          RETURN                             'AUTO-UP MOD
  765.       IF NOT ZGetExtDesc THEN _
  766.          ZPrivateDoor = ZFalse : _
  767.          GOTO 20710
  768.       ZMsgHeader$ = "Extended Description for " + ZFileNameHold$
  769.       ZSysopComment = ZTrue
  770.       ZMaxMsgLines = ZMaxExtendedLines
  771.       WasLL = ZRightMargin
  772.       ZRightMargin = 30 + ZMaxDescLen
  773.       IF ZRightMargin > 74 THEN _
  774.          ZRightMargin = 74
  775.       ZFileSysParm = 5
  776.       RETURN
  777. * REPLACING old line(s) by new
  778. 20705 ZMaxMsgLines = ZMaxMsgLinesDef
  779.       ZRightMargin = WasLL
  780. * ------[ first line different ]------
  781.       CALL UpdtUpload (ZCategoryName$(),ZCategoryCode$(),ZLinesInMsg,3)  'Pe 02/04/90
  782. * REPLACING old line(s) by new
  783. 20730 GOSUB 21780
  784.       CALL QuickTPut1 ("Upload aborted")
  785. * ------[ first line different ]------
  786.       ZAutoLogoffReq = ZFalse                'Pe 10/20/91
  787.       ZWasBatchTransfer = ZFalse             'Pe 03/02/92
  788.       ZUpBatchTransfer = ZFalse              'Pe 03/02/92
  789.       LastUpld = 0
  790.       ZPrivateDoor = ZFalse
  791. * REPLACING old line(s) by new
  792. 20735 CALL KillWork (ZFileName$)
  793. * ------[ first line different ]------
  794.       IF ZErrCode <> 0 THEN _
  795.          ZWasEL = 20736 : _
  796.          GOTO 21900
  797.       ZAnsIndex = ZLastIndex + 1
  798.       IndexSave = ZAnsIndex
  799.       ZLastIndex = 0
  800.       RETURN
  801. '
  802. ' *  Sysop ABORTED UPLOAD
  803. '
  804. * REPLACING old line(s) by new
  805. 20791 CALL CheckTimeRemain (MinsRemaining)
  806.       IF ZSubParm = -1 THEN _
  807.          ZFileSysParm = 6 : _
  808.          RETURN
  809.       ZOK = ZTrue
  810.       Temp = ZExtraDnldTime
  811.       CALL ChkAddedTime (Temp)
  812.       Temp = MinsRemaining + Temp
  813.       ZWasA = INT(ZBlocksInFile# / 60) + 1
  814.       IF ZWasA <= Temp THEN _
  815.          GOTO 20793
  816. * ------[ first line different ]------
  817.       IF ZDownFiles < 2 THEN _
  818.          CALL AllCaps (ZFileNameHold$) : _
  819.          ZOutTxt$ = ZFileNameHold$ + " Not enough minutes left!  Need" _
  820.                  + STR$(ZWasA) + "  have" + STR$(Temp) : _
  821.          CALL UpdtCalr (ZOutTxt$,2) : _
  822.          CALL QuickTPut1 (ZOutTxt$) _
  823.       ELSE CALL OpenWork (2,ZNodeWorkFile$) : _
  824.            WHILE NOT EOF(2) : _
  825.               CALL ReadDir (2,1) : _
  826.               CALL BreakFileName (ZOutTxt$,DR$,ZWasY$,WasX$,ZTrue): _
  827.               ZFileName$ = ZWasY$ + WasX$ : _
  828.               ZOutTxt$ = ZFileName$ + " Not enough minutes left!  Need" _
  829.                          + STR$(ZWasA) + "  have" + STR$(Temp) : _
  830.               CALL UpdtCalr (ZOutTxt$,2) : _
  831.            WEND : _
  832.            CLOSE 2 : _
  833.            ZOutTxt$ = "Not enough minutes left!  Need"  _
  834.                        + STR$(ZWasA) + "  have" + STR$(Temp) : _
  835.            CALL QuickTPut1 (ZOutTxt$)
  836.       CALL DelayTime (3)
  837.       IF ZDownFiles < 2 THEN _
  838.          GOTO 20792
  839.       ZLastIndex = 0
  840.       ZOutTxt$ = "Edit files to download ([Y],N)"
  841.       ZTurboKey = - ZTurboKeyUser
  842.       GOSUB 21668
  843.       IF ZNo THEN _
  844.          LastDnld = 0 : _
  845.          GOTO 20792
  846.       Temp = 0
  847.       CALL OpenWork (2,ZNodeWorkFile$)
  848.       WHILE NOT EOF(2)
  849.          CALL ReadDir (2,1)
  850.          CALL BreakFileName (ZOutTxt$,DR$,ZWasY$,WasX$,ZTrue)
  851.          ZFileName$ = ZWasY$ + WasX$
  852.          ZOutTxt$ = "Download " + ZFileName$ + " (Y,[N])"
  853.          ZTurboKey = - ZTurboKeyUser
  854.          GOSUB 21668
  855.          IF ZYes THEN _
  856.             Temp = Temp + 1 : _
  857.             ZOutTxt$(Temp) = ZFileName$
  858.       WEND
  859.       CLOSE 2
  860.       ZAnsIndex = 1
  861.       ReStart = (Temp > 0)
  862.       LastDnld = Temp
  863.       ZLastIndex = Temp
  864.       FOR WasX = 1 TO Temp
  865.          ZUserIn$(WasX) = ZOutTxt$(WasX)
  866.       NEXT
  867. * REPLACING old line(s) by new
  868. 20793 IF ZRatioRestrict# > 0 THEN _
  869.          CALL QuickTPut1 ("New statistics will be") : _
  870.          CALL CheckRatio (ZTrue)
  871. * ------[ first line different ]------
  872.       CALL AutoLogoff
  873.       IF ZAutoEnd = 2 THEN _
  874.       ZOK = ZFalse
  875.       RETURN
  876. * REPLACING old line(s) by new
  877. 20851 ZWasY$ = ""
  878.       CALL CheckCarrier
  879.       IF ZSubParm = -1 THEN _
  880.          ZFileSysParm = 7 : _
  881.          RETURN
  882.       RETURN
  883. '
  884. * ------[ first line different ]------
  885. ' *  CHANGE TO 8 BIT FOR Xmodem
  886. '
  887. * DELETING old line(s)
  888. 20860
  889. 20900
  890. 20903
  891. 20920
  892. 20922
  893. 20930
  894. 20960
  895. 20970
  896. 20990
  897. * REPLACING old line(s) by new
  898. 20996 WasSO = 0
  899.       RETURN
  900. '
  901. * ------[ first line different ]------
  902. ' STANDARD ENTRY FOR RBBS-PC'S COMMON TERMINAL OUTPUT ROUTINE
  903. '
  904. ' Modeled on lines 12975 to 12983 in RBBS-PC.BAS
  905. * DELETING old line(s)
  906. 20999
  907. 21000
  908. 21020
  909. 21040
  910. 21050
  911. 21060
  912. 21070
  913. 21080
  914. 21090
  915. 21100
  916. 21110
  917. 21113
  918. 21120
  919. 21131
  920. 21145
  921. 21150
  922. 21170
  923. 21180
  924. 21190
  925. 21191
  926. 21200
  927. 21210
  928. 21212
  929. 21220
  930. 21225
  931. 21230
  932. 21240
  933. 21250
  934. 21280
  935. 21281
  936. 21300
  937. 21303
  938. 21350
  939. 21360
  940. 21380
  941. 21390
  942. 21410
  943. 21415
  944. 21420
  945. 21440
  946. 21443
  947. 21445
  948. 21450
  949. 21455
  950. 21460
  951. 21470
  952. 21480
  953. 21490
  954. 21503
  955. 21504
  956. 21510
  957. 21530
  958. 21531
  959. 21540
  960. 21545
  961. 21550
  962. 21560
  963. 21561
  964. * REPLACING old line(s) by new
  965. 21720 CALL LPrnt (WasD$,NumReturns)
  966.       RETURN
  967. '
  968. * ------[ first line different ]------
  969. ' * UPDATE DOWNLOAD STATISTICS
  970. '
  971. '  (formerly lines 50600 to 50614 in RBBS-PC.BAS
  972. * DELETING old line(s)
  973. 21750
  974. * REPLACING old line(s) by new
  975. 21760 GOSUB 21780
  976.       IF ZFileSysParm > 1 THEN _
  977.          RETURN
  978.       IF ZBatchTransfer THEN _
  979.          CALL LinesInFile (ZNodeWorkFile$,ZDownFiles) _
  980.       ELSE ZDownFiles = 1
  981. * ------[ first line different ]------
  982.       IF NOT ZDnldCompleted THEN _     'Pe 05/31/91
  983.          ZAutoLogoffReq = ZFalse : _
  984.          ZWasDF$ = " Aborted" : _
  985.          GOTO 21770
  986.       CALL LogPDown (ZPersonalDnld,1+ZAnsIndex-FirstDnld)
  987.       WasX = ((ZRatioRestrict# > 0) AND ZEnforceRatios AND ZFreeDnld)
  988.       IF NOT WasX THEN _
  989.          ZDnlds = ZDnlds + ZDownFiles : _
  990.          ZGlobalDLToday! = ZGlobalDLToday! + ZDownFiles : _
  991.          ZGlobalDnlds = ZGlobalDnlds + ZDownFiles : _
  992.          ZDLBytes! = ZDLBytes! + ZNumDnldBytes! : _
  993.          ZGlobalDLBytes! = ZGlobalDLBytes! + ZNumDnldBytes! : _
  994.          ZDLToday! = ZDLToday! + ZDownFiles : _
  995.          ZBytesToday! = ZBytesToday! + ZNumDnldBytes! : _
  996.          ZGlobalBytesToday! = ZGlobalBytesToday! + ZNumDnldBytes!
  997.       ZNumDnldBytes! = 0
  998.       ZWasDF$ = " Downloaded"
  999.       IF (ZAnsIndex = LastDnld OR NOT ZConcatFIles) THEN _
  1000.          CALL SkipLine (1) : _
  1001.          CALL QuickTPut1 ("Download successful")
  1002.          IF WasX THEN _
  1003.             CALL QuickTPut1 ("but not counted against ratios")
  1004. * DELETING old line(s)
  1005. 21768
  1006. * REPLACING old line(s) by new
  1007. * ------[ first line different ]------
  1008. 21773 IF ZTransferFunction = 1 THEN
  1009.      CALL BreakFileName (ZFileName$,DR$,WasX$,Extension$,ZTrue)
  1010.       ZWasZ$ = WasX$ + _
  1011.            Extension$ + _
  1012.            ZWasDF$ + _
  1013.            " at " + _
  1014.            ZTime$ + _
  1015.            " using " + _
  1016.            ZWasFT$ + _
  1017.            STR$(ZBytesInFile#)
  1018.       CALL UpdtCalr (ZWasZ$,2)
  1019.    END IF
  1020.       IF ZBatchTransfer THEN _
  1021.          ZWasQ = ZWasQ - 1 : _
  1022.          GOTO 21772
  1023.       'CALL CheckRatio (ZFalse)
  1024. * REPLACING old line(s) by new
  1025. * ------[ first line different ]------
  1026. 21774  RETURN
  1027. '
  1028. '
  1029. ' *****   TURN ON INTERMEDIATE ECHO   ****
  1030. '
  1031. '  (formerly line 50620 in RBBS-PC.BAS
  1032. * REPLACING old line(s) by new
  1033. * ------[ first line different ]------
  1034. 21790  Call CheckCarrier                  'Pe 12/31/91
  1035.       IF ZSubParm = -1 THEN _             'Pe 12/31/91
  1036.          ZFileSysParm = 7 : _             'Pe 12/31/91
  1037.        Return                             'Pe 12/31/91
  1038.        IF ZEchoer$ = "I" THEN _
  1039.          CALL SetEcho ("R")
  1040.       RETURN
  1041. '
  1042. ' *****   DIRECTORY SEARCH   ****
  1043. '
  1044. '  (formerly lines 52900 to 52920 in RBBS-PC.BAS
  1045. * REPLACING old line(s) by new
  1046. 21820 WasRS$ = ZUserIn$(ZAnsIndex)
  1047.       WildSearch = (INSTR(WasRS$,"*") > 0 OR INSTR(WasRS$,"?") > 0)
  1048.       CALL AllCaps (WasRS$)
  1049.       IF RIGHT$(WasRS$,1) = "*" THEN _
  1050.          IF RIGHT$(WasRS$,2) <> ".*" THEN _
  1051.             WasRS$ = WasRS$ + ".*"
  1052.       SearchString$ = WasRS$
  1053.       SearchDate$ = ""
  1054.       ZJumpSearching = ZFalse
  1055.       WasA1$ = WasRS$
  1056. * ------[ first line different ]------
  1057.       ZExtendedOff = ZFalse 'ZTrue       'Pe 10/27/91
  1058.       GOTO 21867
  1059. '
  1060. ' *****  P - personal download  ****
  1061. '
  1062. '  (formerly lines 52950 to 52952 in RBBS-PC.BAS
  1063. * REPLACING old line(s) by new
  1064. * ------[ first line different ]------
  1065. 21854 RETURN
  1066. '
  1067. ' *  WasN - COMMAND FROM FILES MENU (DISPLAY NEW FILES SINCE Last DIR DISPLAY)
  1068. '
  1069. '  (formerly lines 53000 to 53070 in RBBS-PC.BAS
  1070. * REPLACING old line(s) by new
  1071. 21866 SearchDate$ = WasRS$
  1072.       SearchString$ = ""
  1073.       ZJumpSearching = ZFalse
  1074. * ------[ first line different ]------
  1075.       ZExtendedOff = ZFalse 'ZTrue             'Pe 10/27/91
  1076.       ZUserIn$(ZAnsIndex) = "A"
  1077.        ZEndList = ZTrue          'Pe 12/01/91
  1078.        GOTO 21871                'Pe NewFile mod
  1079. * REPLACING old line(s) by new
  1080. * ------[ first line different ]------
  1081. 21867 CALL GetDirs (ZFalse)
  1082.       IF ZWasQ = 0 THEN _
  1083.          RETURN
  1084. * REPLACING old line(s) by new
  1085. 21880 WasQX = ZAnsIndex
  1086.       GOSUB 20157
  1087.       IF ZFileSysParm > 1 THEN _
  1088.          RETURN
  1089.       ZAnsIndex = ZAnsIndex + 1
  1090.       IF ZAnsIndex <= ZLastIndex THEN _
  1091.          GOTO 21875
  1092.       ListNew = ZFalse
  1093. * ------[ first line different ]------
  1094.       ZEndList = ZFalse       'Pe 12/01/91
  1095.       SearchString$ = ""
  1096.       SearchDate$ = ""
  1097.       RETURN
  1098. * REPLACING old line(s) by new
  1099. 21900 IF ZDebug THEN _
  1100.          ZOutTxt$ = "RBBSSUB5 DEBUG Error Trap Entry ERL=" + _
  1101.               STR$(ZWasEL) + _
  1102.               " ERR=" + _
  1103.               STR$(ZErrCode) : _
  1104.          IF ZPrinter THEN _
  1105.             CALL Printit(ZOutTxt$) _
  1106.          ELSE CALL LPrnt(ZOutTxt$,1)
  1107.       IF ZWasEL = 20126 AND ZErrCode = 53 THEN _
  1108.          GOTO 20142
  1109.       IF ZWasEL = 20242 AND ZErrCode = 62 THEN _
  1110.          CALL UpdtCalr (ZFileSecFile$ + " bad format!",2) : _
  1111.          GOTO 20247
  1112.       IF ZWasEL = 20263 THEN _
  1113.          ZOutTxt$ = "<Download aborted>" : _
  1114. * ------[ first line different ]------
  1115.          ZDnldCompleted = ZFalse : _          'Pe
  1116.          GOTO 20390
  1117.       IF ZWasEL = 20560 AND ZErrCode = 67 THEN _
  1118.          GOTO 20451
  1119.       IF ZWasEL = 20560 AND ZErrCode = 70 THEN _
  1120.          IF VAL(ZFreeSpace$) > 1999 THEN _
  1121.             GOTO 20610 _
  1122.          ELSE GOSUB 21895 : _
  1123.               GOTO 21700
  1124.       IF ZWasEL = 20620 THEN _
  1125.          GOTO 20670
  1126.       IF ZWasEL = 20650 THEN _
  1127.          GOTO 20670
  1128.       IF ZWasEL = 20736 AND ZErrCode = 53 THEN _
  1129.          GOTO 21700
  1130. * REPLACING old line(s) by new
  1131. 63320 ' $SUBTITLE: 'ShellExit - sub to shell out from RBBS'
  1132. ' $PAGE
  1133. '
  1134. '  NAME    -- ShellExit
  1135. '
  1136. '  INPUTS  -- ShellTem$     String to invoke shell with
  1137. '
  1138. '  OUTPUTS -- none
  1139. '
  1140. '  PURPOSE -- Delay so that strings can finish printing.  Restore comm
  1141. '             port on return
  1142. '
  1143.       SUB ShellExit (ShellTem$) STATIC
  1144. * ------[ first line different ]------
  1145.       CALL DelayTime (4 + ZBPS)   'Pe 08/12/91
  1146.       IF NOT ZLocalUser THEN _
  1147.          IF ZFossil THEN _
  1148.             CALL FOSExit(ZComPort) _
  1149.          ELSE CLOSE 3 : _
  1150.               OUT ZModemCntlReg,INP(ZModemCntlReg) OR 1
  1151.       CLOSE 2
  1152.       CALL MetaGSR (ShellTem$,ZFalse)
  1153.       SHELL ShellTem$
  1154.       IF ZFossil THEN _
  1155.          IF NOT ZLocalUser THEN _
  1156.             CALL FOSinit(ZComPort,Result) : _
  1157.             IF Result = -1 THEN _
  1158.                CALL PScrn("ERROR INIT FOSSIL AFT EXTERNAL") : _
  1159.                SYSTEM
  1160.       CALL DelayTime (2)
  1161.       CALL RestoreCom
  1162.       END SUB
  1163. * REPLACING old line(s) by new
  1164. 63397 IF EOF(6) THEN _         ' Read next line in macro
  1165. * ------[ first line different ]------
  1166.               ZMacroActive = ZFalse _
  1167.       ELSE CALL ReadDir (6,1) : _
  1168.            ZMacroActive = (ZErrCode = 0)
  1169.       RETURN
  1170. * REPLACING old line(s) by new
  1171. 63400 ' $SUBTITLE: 'LockAppend - prepares for file append'
  1172. ' $PAGE
  1173. '
  1174. '  NAME    -- LockAppend
  1175. '
  1176. '  INPUTS  -- ZWasEN$            Name of file to append to
  1177. '
  1178. '  OUTPUTS -- none
  1179. '
  1180. '  PURPOSE -- Locks and opens file to append to
  1181. '
  1182.       SUB LockAppend STATIC
  1183. * ------[ first line different ]------
  1184. IF ZNetWorkType <> 0 Then _       'Pe 04/04/92
  1185.       WasBX = &H4 : _            'Pe 03/16/92
  1186.       ZSubParm = 9 : _           'Pe 03/16/92
  1187.       CALL FileLock
  1188.       ZErrCode = 0
  1189.       CALL OpenWorkA (ZWasEN$)
  1190.       END SUB
  1191. * REPLACING old line(s) by new
  1192. 63410 ' $SUBTITLE: 'UnLockAppend - cleans up after file append'
  1193. ' $PAGE
  1194. '
  1195. '  NAME    -- UnLockAppend
  1196. '
  1197. '  INPUTS  -- none
  1198. '
  1199. '  OUTPUTS -- none
  1200. '
  1201. '  PURPOSE -- Unlocks and close file appending to
  1202. '
  1203.       SUB UnLockAppend STATIC
  1204. * ------[ first line different ]------
  1205. IF ZNetWorkType <> 0 Then _       'Pe 04/04/92
  1206.       WasBX = &H4 : _            'Pe 03/16/92
  1207.       ZSubParm = 10 : _          'Pe 03/16/92
  1208.       CALL FileLock
  1209.       CLOSE 2
  1210.       END SUB
  1211. * REPLACING old line(s) by new
  1212. 63465 ' Forces a keyboard pause inside a macro
  1213.       SUB PauseExit STATIC
  1214.       ZSubParm = 4
  1215.       ZTurboKey = -ZTurboKeyUser
  1216. * ------[ first line different ]------
  1217.       ZOutTxt$ = ZMorePrompt$ + LEFT$(">",-1*ZExpertUser) + MID$("? : ",2*ZTurboKey+1,2) ' TC041610
  1218.       ZForceKeyboard = ZTrue
  1219.       ZNoAdvance = ZTrue
  1220.       CALL TPut
  1221.       ZLinesPrinted = 0
  1222.       ZUserIn$ = ""
  1223.       END SUB
  1224. * REPLACING old line(s) by new
  1225. 63470 ' $SUBTITLE: 'SetPrompt - sub to set prompts based on user security'
  1226. ' $PAGE
  1227. '
  1228. '  NAME    -- SetPrompt
  1229. '
  1230. '  INPUTS  -- PARAMETER           MEANING
  1231. '             ZBegMain          POSITION START OF MAIN CMDS
  1232. '             ZBegFile          POSITION START OF FILE CMDS
  1233. '             ZBegUtil          POSITION START OF UTIL CMDS
  1234. '             ZBegLibrary       POSITION START OF Library CMDS
  1235. '
  1236. '  OUTPUTS -- PRESENT.OPTS$         DISPLAY WHAT USER CAN DO (1st)
  1237. '             CALLERS.OPTS$         DISPLAY WHAT USER CAN DO (2nd)
  1238. '             ZMainOpts$            MAIN OPTS USER CAN DO
  1239. '             ZFileOpts$            FILE OPTS USER CAN DO
  1240. '             ZUtilOpts$            UTIL OPTS USER CAN DO
  1241. '             ZLibOpts$         Library OPTS USER CAN DO
  1242. '
  1243. '  PURPOSE -- Sets command line display of what user can do by
  1244. '             section and display of what all user can do
  1245. '
  1246.       SUB SetPrompt STATIC
  1247.       First = ZBegMain
  1248.       Last = ZBegFile - 1
  1249.       CALL SetOpts (ZMainOpts$,ZInvalidMainOpts$,First,Last)
  1250.       First = ZBegFile
  1251.       Last = ZBegUtil - 1
  1252.       CALL SetOpts (ZFileOpts$,ZInvalidFileOpts$,First,Last)
  1253.       First = ZBegUtil
  1254.       Last = ZBegLibrary - 1
  1255.       CALL SetOpts (ZUtilOpts$,ZInvalidUtilOpts$,First,Last)
  1256.       First = ZBegLibrary
  1257.       Last = ZBegLibrary + 6
  1258.       CALL SetOpts (ZLibOpts$,ZInvalidLibraryOpts$,First,Last)
  1259.       First = 50
  1260.       Last = 56
  1261.       CALL SetOpts (SysOpt$,ZInvalidSysOpts$,First,Last)
  1262.       First = 46
  1263.       Last = 49
  1264.       CALL SetOpts (GlobalOpts$,InvalidGlobalOpts$,First,Last)
  1265.       IF LEN(SysOpt$) > 0 THEN _
  1266.          ZSystemOpts$ = "Sysop: " + _
  1267.                         SysOpt$
  1268.       ZMainOpts$ = GlobalOpts$ + ZMainOpts$ + _
  1269.                    MID$(ZAllOpts$,INSTR(ZOrigCommands$,"G"),1)
  1270.       ZFileOpts$ = GlobalOpts$ + _
  1271.                    ZFileOpts$
  1272.       ZUtilOpts$ = GlobalOpts$ + _
  1273.                    ZUtilOpts$
  1274.       ZLibOpts$ = GlobalOpts$ + _
  1275.                       ZLibOpts$
  1276.       CALL SortString (SysOpt$)
  1277.       CALL SortString (ZMainOpts$)
  1278.       ZMainOpts$ = ZMainOpts$ + _
  1279.                    SysOpt$
  1280.       CALL SortString (ZFileOpts$)
  1281.       CALL SortString (ZUtilOpts$)
  1282.       CALL SortString (ZLibOpts$)
  1283.       CALL AddCommas (ZMainOpts$)
  1284.       CALL AddCommas (ZFileOpts$)
  1285.       CALL AddCommas (ZUtilOpts$)
  1286.       CALL AddCommas (ZLibOpts$)
  1287.       ZDirPrompt$ = "What directory(s) (" + _
  1288. * ------[ first line different ]------
  1289.          MID$("U)pload,A)ll,P)ers,L)ist,E)xtra,[Q]uit)",8 * (ZUserSecLevel => ZMinSecToView) + 9)
  1290.       ZQuitPromptExpert$ = "QUIT C,S, or to F,[M],U"
  1291.       ZQuitPromptNovice$ = "QUIT C)onference, S)ession or to section " + _
  1292.                             "F)ile, [M]ain, U)til"
  1293.       ZQuitList$ = "FMUS@C"
  1294.       IF ZUserSecLevel < ZOptSec(18) THEN _
  1295.          ZQuitPromptExpert$ = LEFT$(ZQuitPromptExpert$,23) : _
  1296.          ZQuitPromptNovice$ = LEFT$(ZQuitPromptNovice$,61) : _
  1297.          MID$(ZQuitList$,5) = " "
  1298.       IF ZUserSecLevel < ZOptSec(15) THEN _
  1299.          ZQuitPromptExpert$ = LEFT$(ZQuitPromptExpert$,22) + _
  1300.                                MID$(ZQuitPromptExpert$,25) : _
  1301.          ZQuitPromptNovice$ = LEFT$(ZQuitPromptNovice$,56) + _
  1302.                                MID$(ZQuitPromptNovice$,63) : _
  1303.          MID$(ZQuitList$,3,1) = " "
  1304.       IF ZUserSecLevel < ZOptSec(6) THEN _
  1305.          ZQuitPromptExpert$ = LEFT$(ZQuitPromptExpert$,16) + _
  1306.                                MID$(ZQuitPromptExpert$,19) : _
  1307.          ZQuitPromptNovice$ = LEFT$(ZQuitPromptNovice$,41) + _
  1308.                                MID$(ZQuitPromptNovice$,49) : _
  1309.          MID$(ZQuitList$,1,1) = " "
  1310.       CALL SetSection
  1311.       END SUB
  1312. * REPLACING old line(s) by new
  1313. 63540 ' Match Name to one in message file
  1314.       SUB ChkMsgName (MsgFromCaller,MsgToCaller) STATIC
  1315. * ------[ first line different ]------
  1316.      IF ZNewUserDGS THEN _                                        'DGS-NEW
  1317.         CALL MsgNameMatch ("NEWUSER",ZActiveUserName$,6,MsgFromCaller) : _      'DGS-NEW
  1318.         CALL MsgNameMatch ("NEWUSER",ZActiveUserName$,37,MsgToCaller) : _       'DGS-NEW
  1319.      Exit Sub
  1320.       IF NOT ZRemoteSysop THEN _
  1321.          WasX$ = LEFT$("SYSOP",-5*ZSysop) : _
  1322.          CALL MsgNameMatch (ZorigUserName$,ZActiveUserName$,6,MsgFromCaller) : _ 'Dgs-ALSMod
  1323.          CALL MsgNameMatch (ZorigUserName$,ZActiveUserName$,37,MsgToCaller)  : _    'Dgs-ALSMod
  1324.          EXIT SUB
  1325.       CALL MsgNameMatch ("SYSOP",ZSysopFullName$,6,MsgFromCaller)
  1326.       IF NOT MsgFromCaller THEN _
  1327.          CALL MsgNameMatch (ZOrigUserName$,"",6,MsgFromCaller)
  1328.       CALL MsgNameMatch ("SYSOP",ZSysopFullName$,37,MsgToCaller)
  1329.       IF NOT MsgToCaller THEN _
  1330.          CALL MsgNameMatch (ZOrigUserName$,"",37,MsgToCaller)
  1331.       END SUB
  1332.       SUB MsgNameMatch (PrimeName$,AltName$,SearchPos,Found) STATIC
  1333.       WasX$ = LEFT$(PrimeName$+"  ",22-8*(SearchPos < 7))
  1334.       GOSUB 63542
  1335.       IF Found OR AltName$ = "" THEN _
  1336.          EXIT SUB
  1337.       WasX$ = LEFT$(AltName$ + "  ",22-8*(SearchPos < 7))
  1338.       GOSUB 63542
  1339.       EXIT SUB
  1340. * REPLACING old line(s) by new
  1341. 63542 WasY$ = MID$(ZMsgRec$,SearchPos,LEN(WasX$))
  1342. * ------[ first line different ]------
  1343.       CALL SmartText(WasY$,ZFalse, OverStrike)        'SM091908
  1344.       CALL AllCaps(WasY$)                'SM091908
  1345.       WasY$ = LEFT$(WasY$,LEN(WasX$))            'SM091908
  1346.       ZWasDF = INSTR(WasY$,"@")
  1347.       IF ZWasDF > 0 THEN _
  1348.          MID$(WasY$,ZWasDF) = "      "
  1349.       Found = (WasY$ = WasX$)
  1350.       RETURN
  1351.       END SUB
  1352. * REPLACING old line(s) by new
  1353. 63625 ' * Sets SysOp security variables Formerly 5370 of rbbs-pc.bas
  1354.       ' * Returns ZWasA true when remote or global sysop
  1355.       SUB SetSysOp STATIC
  1356.       ZRemoteSysop = ((ZActiveUserName$ = ZSecretName$) OR _
  1357. * ------[ first line different ]------
  1358.                       (ZOrigUserName$ = ZSecretName$)) _
  1359.       OR _
  1360.       (ZActivUserName$ ="SYSOP")     'LK 12/05/91
  1361.       ZWasA = ZRemoteSysop
  1362.       ZGlobalSysop = (ZGlobalSysop OR (ZWasA AND ZOrigCnfg$ = ZConfigFileName$))
  1363.       IF ZGlobalSysop THEN _
  1364.          ZWasA = ZTrue
  1365.       END SUB
  1366. * REPLACING old line(s) by new
  1367. 63630 ' * Sets the user preferences based on user record.
  1368.       ' * Formerly in RBBS-PC.BAS
  1369.       SUB SetUserPref STATIC
  1370.       IF ZWasA THEN _
  1371.          ZUserSecLevel = ZSysopSecLevel _
  1372.       ELSE ZUserSecLevel = CVI(ZSecLevel$)
  1373.       ZBankTime = ASC(ZBankTime$)
  1374.       ZLastMsgRead = CVI(MID$(ZUserOption$,3,2))
  1375.       ZUserXferDefault$ = MID$(ZUserOption$,5,1)
  1376.       IF ZUserXferDefault$ = " " THEN _
  1377.          ZUserXferDefault$ = "N"
  1378.       CALL XferType (2,ZTrue)
  1379.       WasX = ASC(MID$(ZUserOption$,6,1))
  1380.       ZWasGR = (WasX MOD 3)
  1381.       ZBoldText$ = CHR$(48 - (WasX > 50))
  1382.       ZUserTextColor = (WasX - ZWasGR)/3 + 21
  1383.       IF ZUserTextColor > 37 THEN _
  1384.          ZUserTextColor = ZUserTextColor - 7
  1385.       IF ZEmphasizeOff$ <> "" THEN _
  1386.          CALL QuickTPut (ZColorReset$,0)
  1387.       IF ZEmphasizeOnDef$ <> "" THEN _
  1388.          ZEmphasizeOff$ = ZEscape$ + "[" + ZBoldText$ + ";40;" + MID$(STR$(ZUserTextColor),2) + "m" _
  1389.       ELSE ZEmphasizeOff$ = ""
  1390.       IF ZWasGR = 1 AND NOT ZEightBit THEN _
  1391.          ZWasGR = 0
  1392.       CALL SetGraphic (ZWasGR)
  1393.       ZRightMargin = CVI(MID$(ZUserOption$,7,2))
  1394.       IF ZRightMargin > 72 THEN _
  1395.          ZRightMargin = 72
  1396. * ------[ first line different ]------
  1397.            IF NOT ZConfMode THEN _
  1398.          ZWasCI$ = ZCityState$ : _
  1399.       CALL Trim (ZWasCI$)
  1400.       UserOptions = CVI(MID$(ZUserOption$,9,2))
  1401.       ZPromptBell = (UserOptions AND 1) > 0
  1402.       ZExpertUser = (UserOptions AND 2) > 0
  1403.       CALL SetExpert
  1404.       ZNulls = (UserOptions AND 4) > 0
  1405.       ZUpperCase = (UserOptions AND 8) > 0
  1406.       ZLineFeeds = (UserOptions AND 16) > 0
  1407.       ZCheckBulletLogon = (UserOptions AND 32) > 0
  1408.       ZSkipFilesLogon = (UserOptions AND 64) > 0
  1409.       ZFullScreenEditor = (UserOptions AND 128) > 0    'Pe 09/02/91
  1410.       ZReqQuesAnswered = (UserOptions AND 256) > 0
  1411.       ZMailWaiting = (UserOptions AND 512) > 0
  1412.       WasX = (UserOptions AND 1024 ) > 0
  1413.       CALL SetHiLite (NOT WasX)
  1414.       IF NOT ZHiLiteOff THEN _
  1415.          CALL QuickTPut (ZEmphasizeOff$,0)
  1416.       ZTurboKeyUser = (UserOptions AND 2048) > 0
  1417.       ZTurboKey = ZFalse
  1418.       ZFileWaiting = (UserOptions AND 4096) > 0
  1419.       CALL SetRegDisplay
  1420.       ZPageLength = ASC(MID$(ZUserOption$,13,1))
  1421.       IF ZSubBoard THEN _
  1422.          GOTO 63632
  1423.       WasX$ = ZEchoer$
  1424.       ZEchoer$ = MID$(ZUserOption$,14,1)
  1425.       IF INSTR("ICR",ZEchoer$) = 0 THEN _
  1426.          ZEchoer$ = "R"
  1427.       IF WasX$ <> ZEchoer$ THEN _
  1428.          CALL ReportEcho
  1429.       CALL SetEcho (ZEchoer$)
  1430. * REPLACING old line(s) by new
  1431. 63640 ' * Welcomes caller on
  1432. * ------[ first line different ]------
  1433.       SUB SayWelcome (anystring$,FF) STATIC   'Pe 08/01/92
  1434.       On FF Goto 63641,63643,63644       'Pe 08/01/92
  1435. * INSERTING new line(s)
  1436. 63641 LOCATE 24,1                  'Pe 08/01/92
  1437.       CALL AMorPM
  1438.       ZUserLogonTime! = TIMER
  1439.       ZTimeLoggedOn$ = TIME$
  1440.       ZLinesPrinted = 0
  1441.       ZExpertUser = ZFalse
  1442.       CALL SetExpert
  1443.       ZOutTxt$ = ""
  1444.       IF ZMaxNodes > 1 THEN _
  1445.          ZOutTxt$ = " - Node " + ZNodeID$
  1446.       IF ZReliableMode THEN _
  1447.          ZOutTxt$ = ZOutTxt$ + " (Reliable)"
  1448. '      CALL QuickTPut1 ("Welcome to " + ZRBBSName$ + ZOutTxt$)  'Pe 06/26/92
  1449.       CALL TestANSI
  1450.       ZTestParity = ZTrue
  1451.       ZStopInterrupts = ZTrue
  1452.       ZFileName$ = ZPreLog$
  1453.       CALL FlushCom (WasX$)
  1454.       ZCommPortStack$ = ""
  1455. Exit Sub                         'Pe 08/01/92
  1456.  
  1457. 63643 IF NOT ZNewUser THEN _
  1458.      CALL QuickTPut1 (ZFG1$ +"Times on   :" + STR$(ZTimesLoggedOn) + ZCrLf$ +_
  1459.                       + ZFG2$ +"Last on was: " + anystring$ + ZEmphasizeOff$)
  1460.  IF ZRemindFileXfers OR NOT ZNewUser THEN _
  1461.        CALL CheckRatio (ZFalse)
  1462. Exit Sub
  1463.  
  1464. 63644 CALL QuickTPut1 (ZFG1$+"Logging " + ZActiveUserName$)
  1465. CALL QuickTPut1 (ZFG2$ + "RBBS-PC " + ZVersionID$ + ZCrLf$ + _
  1466.                  ZFG3$ + "Node " + ZNodeID$ + ZCrLf$ +_
  1467.                  ZFG4$ + "Operating at " + anystring$ + ZEmphasizeOff$) 'Pe 08/21/91
  1468. Call SkipLine (1) 
  1469.     IF ZMaxNodes > 1 THEN                                        ' CHAT0805
  1470.        CALL LogNewForChat (ZMaxNodes)                            ' CHAT0805
  1471.     END IF                                                       ' CHAT0805
  1472.  
  1473.       END SUB
  1474.  
  1475. * REPLACING old line(s) by new
  1476. 63656 CALL GetPassword
  1477.       IF ZErrCode <> 0 THEN _
  1478.          CALL UpdtCalr (ZPswdFile$ + " bad format!",2) : _
  1479.          GOTO 63659
  1480.       IF MatchPass THEN _
  1481.          ZTempPassword$ = LEFT$(ZTempPassword$ + SPACE$(15),15) : _
  1482.          IF MatchPass$ <> ZTempPassword$ THEN _
  1483.             GOTO 63654 _
  1484.          ELSE IF ZUserSecLevel >= ZMinSecForTempPswd THEN _
  1485.                  GOTO 63658 _
  1486.               ELSE GOTO 63654
  1487. * ------[ first line different ]------
  1488.    IF ZUserSecLevel <> ZTempSecLevel OR ZTempPassword$ <> "" THEN _
  1489.          GOTO 63654
  1490.       IF ZStartTime = 0 THEN _
  1491.          GOTO 63658
  1492.       WorkTime$ = TIME$
  1493.       TestTime = VAL(LEFT$(WorkTime$,2) + MID$(WorkTime$,4,2))
  1494.       IF TestTime => ZStartTime AND TestTime <= ZEndTime THEN _
  1495.          GOTO 63658
  1496.       IF ZEndTime < ZStartTime THEN _
  1497.          IF TestTime => ZStartTime OR TestTime <= ZEndTime THEN _
  1498.             GOTO 63658
  1499.       GOTO 63654
  1500. * REPLACING old line(s) by new
  1501. 63675 SUB SetUserUpDn STATIC
  1502.       ZDnlds = CVI(ZUserDnlds$)
  1503.       ZUplds = CVI(ZUserUplds$)
  1504.       ZBankTime = ASC(ZBankTime$)
  1505.       IF ZEnforceRatios THEN _
  1506.          ZDLToday! = CVS(ZTodayDl$) : _
  1507.          ZBytesToday! = CVS(ZTodayBytes$) : _
  1508.          ZDLBytes! = CVS(ZDlBytes$) : _
  1509.          ZULBytes! = CVS(ZULBytes$)
  1510.       END SUB
  1511.       SUB SetGlobalUpDn STATIC
  1512.       IF NOT ZGlobalsSet THEN _
  1513.          ZGlobalsSet = ZTrue : _
  1514.          ZGlobalDnlds = ZDnlds : _
  1515.          ZGlobalUplds = ZUplds : _
  1516.          ZGlobalDLToday! = ZDLToday! : _
  1517.          ZGlobalBytesToday! = ZBytesToday! : _
  1518.          ZGlobalDLBytes! = ZDLBytes! : _
  1519.          ZGlobalULBytes! = ZULBytes! : _
  1520.          ZGlobalBankTime = ZBankTime
  1521.       END SUB
  1522. * ------[ first line different ]------
  1523. '
  1524. * REPLACING old line(s) by new
  1525. 63700 ' $SUBTITLE: 'TestANSI - test caller for ANSI support'
  1526. ' $PAGE
  1527. '
  1528. '  NAME    -- TestANSI
  1529. '                                  MEANING
  1530. '  INPUTS  -- ZTestANSITime   # of seconds to wait for ANSI response
  1531. '                             0 = do not test for ANSI
  1532. '
  1533. * ------[ first line different ]------
  1534. '  OUTPUTS -- ZCanANSIChat      = ZTrue if ANSIChat possible         ' DD071301/CHAT
  1535. '
  1536. '  PURPOSE -- Test callers' software for support of ANSI graphics
  1537. '
  1538.       SUB TestANSI STATIC
  1539.       IF ZTestANSITime < 1 THEN _
  1540.          GOTO 63705
  1541.       IF ZLocalUser THEN _
  1542.          IF ZDOSAnsi THEN _
  1543.             GOTO 63710 _
  1544.          ELSE GOTO 63705
  1545.       CALL QuickTPut1 ("Testing For ANSI support..."+ZCrLf$)  'Pe 09/26/91
  1546.       CALL FlushCom(Temp$)
  1547.       CALL PutCom (ZEscape$ + "[6n")
  1548.       CALL DelayTime(ZTestANSITime)
  1549.       CALL WipeLine (5)
  1550.       CALL FlushCom(Temp$)
  1551.       CALL WipeLine (5)
  1552.       Temp = INSTR(Temp$,ZEscape$ + "[")
  1553.       IF Temp > 0 THEN _
  1554.          Temp = INSTR(Temp,Temp$,"R") : _
  1555.          IF TEMP > 0 AND TEMP < 9 THEN _
  1556.             GOTO 63710
  1557. * REPLACING old line(s) by new
  1558. 63710 CALL SetGraphic(2)
  1559.       ZHiLiteOff = ZFalse
  1560. * ------[ first line different ]------
  1561.      CALL QuickTPut1 ("*ANSI Color  Detected*")
  1562.       IF ZDOSANSI THEN _
  1563.          ZCanANSIChat = ZTrue        ' DD071301/CHAT
  1564.       END SUB
  1565. * REPLACING old line(s) by new
  1566. 63720 SUB AraAllCaps (Ara$(1),WhichElement) STATIC
  1567.       Temp$ = Ara$(WhichElement)
  1568.       CALL AllCaps (Temp$)
  1569.       Ara$(WhichElement) = Temp$
  1570.       END SUB
  1571. * ------[ first line different ]------
  1572. '
  1573. '******************** INSERTED AutoLogoff here ******************
  1574. '
  1575. ' $SUBTITLE: 'AutoLogOff - Subroutine to  to log off after transfer'
  1576. ' $PAGE
  1577. '
  1578.   SUB AutoLogOff STATIC
  1579.  ZAutoEnd = 0
  1580.  ZAbort = ZFalse    'Pe 01/19/92
  1581.   IF ZGetExtDesc = ZTrue or ZOK = ZFalse or ZAutoLogOffReq = ZTrue THEN _
  1582.     EXIT SUB
  1583.  ZSubParm = 1
  1584. ZStackC = ZTrue    'Pe 12/21/91
  1585. * INSERTING new line(s)
  1586. 64989  ZStopInterrupts = ZTrue   'Pe 04/17/92
  1587. CALL BufFile(ZHelpPath$+"AUTOOFF.MNU",X)     ' MO 04/13/92
  1588. '      ZOutTxt$ = " C)ontinue with transfer " + ZCrLf$ + _
  1589. '                 " A)bort transfer - Cancel"+ ZCrLf$ + _
  1590. '                 " G)o ahead LOG-OFF after Transfer " + ZCrLf$ + _
  1591. '                 ZCrLf$ + "Press [Enter] to continue or select (C,A,G)->"
  1592. ZStopInterrupts = ZFalse    'Pe 04/17/92
  1593. ZOutTxt$ = "Select ([C],A,G) "
  1594.         ZTurboKey = -ZTurboKeyUser
  1595.       ZSubParm = 1
  1596.       Call TGet
  1597.       CALL AllCaps (ZUserIn$)
  1598.       WasMplx = INSTR("CAG",ZUserIn$)
  1599.       CALL Carrier                      'Pe 03/06/92
  1600.       IF ZSubParm = -1 THEN _           'Pe 03/06/92
  1601.       ZFileSysParm = 7 : _              'Pe 03/06/92
  1602.       EXIT SUB                          'Pe 03/06/92
  1603. IF ZUserIn$ = "" or ZUserIn$ = " " Then _
  1604.       GOTO 64995
  1605.    ON WasMplx GOTO 64995,64990,64998
  1606.       GOTO 64989
  1607. 64990 ZAutoEnd = 2
  1608.       Call Skipline (2)
  1609.       EXIT SUB
  1610. 64995 ZAutoEnd = 3
  1611.       Call Skipline (2)
  1612.       EXIT SUB
  1613. 64998 ZAutoEnd = 1
  1614.       Call SkipLine (2)
  1615.       END SUB
  1616. '
  1617. ' ****  S - COMMAND FROM UTILITY MENU (STATISTICS)  ***  'Pe 09/02/91
  1618. '
  1619. SUB Statistics (CallsToDate!,ActiveMessages,HighMsgNumber,HighestMsgRecord,CurUserCount,MaxMsgs) STATIC
  1620.       ActionFlag = ZTrue
  1621.       IF ZActiveMessageFile$ = ZPrevBase$ THEN _
  1622.         ActionFlag = ZFalse
  1623.      CALL QuickTPut1 ("RBBS-PC " + ZVersionID$ + " Node " + ZNodeID$)
  1624.      ZOutTxt$ = ""
  1625.      IF NOT ZConfMode THEN _
  1626.            ZOutTxt$ = "Caller Number................"+STR$(CallsToDate!) + "  "+ZCrLf$
  1627. ZOutTxt$ = ZOutTxt$ + "Active Messages.............."+STR$(ActiveMessages)+ZCrLf$
  1628. ZOutTxt$ = ZOutTxt$ + "Next Msg Number.............."+STR$(HighMsgNumber + 1)+ZCrLf$
  1629.      IF ZLastMsgRead > 0 THEN _
  1630.      ZOutTxt$ = ZOutTxt$ + "Last msg you read............" + STR$(ZLastMsgRead)+ZCrLf$ _
  1631.      ELSE ZOutTxt$ = ZOutTxt$ + "You Have NOT Read Any Messages Yet !" +ZCrLf$ : _
  1632.      ZNewUserDgs = Ztrue
  1633.      ZSubParm = 2
  1634.      CALL TPut
  1635. IF ZSubParm < 0 THEN _
  1636.          EXIT SUB
  1637.     ZWasZ$ = ZUpldDriveFile$
  1638.      CALL FindFree
  1639.      CALL QuickTPut1 ("Upload disk has" + ZFreeSpace$)
  1640.      CALL QuickTPut1 ( "Free String Space = "+  (STR$(FRE("A")) + " bytes")) 'Pe 08/01/92
  1641.      CALL QuickTPut1 ( "StackSpace = "+  (STR$(CINT(FRE(-2))) + " bytes")) 'Pe 05/10/92
  1642.      IF (NOT ZSysop) AND (ZUserSecLevel < ZSecKillAny) THEN _
  1643.       CALL Delaytime (2) : _
  1644.         EXIT SUB
  1645.      UserWork = (ZHighestUserRecord * .95) + 1
  1646.      IF ZMsgsCanGrow THEN _
  1647.         ZWasY$ = " open" _
  1648.      ELSE ZWasY$ = STR$(HighestMsgRecord + 1 - ZMaxNodes - ZNextMsgRec)
  1649.      ZOutTxt$ = "USERS: used" + _
  1650.           STR$(CurUserCount - 1) + _
  1651.           " avl" + _
  1652.           STR$(UserWork - CurUserCount) + _
  1653.           "  MSGS: used" + _
  1654.           STR$(ActiveMessages) + _
  1655.           " avl" + _
  1656.           STR$(MaxMsgs - ActiveMessages) + _
  1657.           "  MSG REC: used" + _
  1658.           STR$(ZNextMsgRec - 1) + _
  1659.           " avl" + ZWasY$
  1660.      ZSubParm = 2
  1661.      CALL TPut
  1662. IF ZSubParm < 0 THEN _
  1663.    EXIT SUB
  1664. CALL DelayTime (2)
  1665. END SUB
  1666. '********************************************************************
  1667. '
  1668. SUB ShowUsrProfile STATIC
  1669.  CALL QuickTPut (CHR$(12),0) ' to clear screen
  1670. WasX$ =  "USER NAME : " + ZActiveUserName$ + ZCrLF$ + _
  1671.          "SECURITY  :" + STR$(ZUserSecSave) + ZCrLf$ + _
  1672.          "PASSWORD  : " + ZPswdSave$ + ZCrLF$ + _
  1673.          "READ MSG. :" + STR$(ZLastMsgRead)
  1674. Call QuickTput1 (WasX$)
  1675. WasX$ =  "TIMES ON  :" + STR$(ZTimesLoggedOn) +ZCrLF$ + _
  1676.          "Last ON   : " + ZLastDateTimeOnSave$ +ZCRLF$ + _
  1677.          "DownLoads :" + STR$(ZDnlds)                            'Pe 07/09/92 
  1678. Call QuickTput1 (WasX$)
  1679. WasX$ =  "Uploads   :" + STR$(ZUplds)+ ZCrLf$ + _                'Pe 06/01/92
  1680.          "Baud Rate : " + ZCBaud$ + " Bps"                       'Pe 06/01/92
  1681. Call QuickTPut1 (WasX$)
  1682. WasX$ = "Dl-Bytes  :" + STR$(ZDLBytes!)+ZCrLF$ + _
  1683.         "Ul-Bytes  :" + STR$(ZULBytes!)                          'Pe 07/09/92
  1684. Call QuickTput1 (WasX$)
  1685. WasX$ = "User mode : " + MID$("NoviceExpert",1 -6 * ZExpertUser,6) +ZCrLf$ +_
  1686.         "Graphics  : " + MID$("None AsciiColor",GR * 5 + 1,5)
  1687. Call QuickTput1 (WasX$)
  1688. WasX$ = "Protocol  : " + ZUserXferDefault$ + ZCrLF$ + _
  1689.         "Upper Case: " + MID$("and lowerONLY", 1 - 9 * ZUpperCase,9)+ZCrLf$ + _
  1690.         "Line Feeds: " + FNOFFON$(ZLineFeeds)+ ZCrLF$ + _                 'Pe 07/11/92
  1691.         "Nulls     : " + FNOFFON$(ZNulls)
  1692. Call QuickTPut1 (WasX$)
  1693.       IF ZRestrictByDate THEN _
  1694.      CALL QuickTPut ("EXPIRATION: " + ZExpirationDate$,1)
  1695.      CALL Toggle (-8)
  1696.      CALL Toggle (-5)
  1697.      CALL Toggle (-10)
  1698.      CALL Toggle (-2)
  1699.      CALL Toggle (-4)
  1700.      CALL Toggle (-1)
  1701. CALL AskMore ("",ZTrue,ZFalse,WasX,ZTrue)
  1702. END SUB
  1703. '********************************************************************
  1704. '
  1705. SUB BatchUpload (ZDesc$,ZUCat$,WasFF) STATIC
  1706. On WasFF GOTO 69000, 69500
  1707. 69000    CALL OpenWorkA ("BatchUp" +ZNodeID$ +".LST")
  1708.          Call PrintWorkA (ZFileName$)
  1709.          CALL PrintWorkA (ZFileNameHold$)
  1710.          CALL PrintWorkA (ZDesc$)
  1711.          CALL PrintWorkA (ZUcat$)
  1712.         Close 2
  1713.      CALL OpenWorkA (ZBatchWorkFile$) 
  1714.        CALL PrintWorkA (ZFileName$)
  1715.      Close 2
  1716. IF ZAnsindex = ZLastIndex THEN 
  1717.       ZUpBatchTransfer = ZFalse
  1718.       ZWasBatchTransfer = ZTrue
  1719.   End IF
  1720. Exit Sub
  1721. '
  1722. '
  1723. 69500 CALL KillWork (ZBatchWorkFile$)
  1724.       ZErrCode = 0
  1725.     Temp$ = "BatchUp" + ZNodeid$ + ".LST"
  1726.       CALL OpenWork (8,Temp$)
  1727.          While Not EOF(8)
  1728.        Line Input #8,ZFileName$
  1729.        Line Input #8,ZFileNameHold$
  1730.        Line Input #8,ZDesc$
  1731.        Line Input #8,ZUCat$
  1732.         Call Findit (ZFileName$)
  1733.     IF ZOK THEN _
  1734.       CALL UpdtUpload (ZCategoryName$(),ZCategoryCode$(), ZLinesInMsg,2) _
  1735.         Else CALL UpdtCalr (ZFileNameHold$ + " ABORTED during BatchUL",2) 
  1736.           ZWasBatchTransfer = ZFalse                  'Pe 09/12/91
  1737.          ZAlreadyGiven = ZTrue
  1738.        Wend
  1739.      Close 8
  1740. End Sub
  1741.  
  1742. 69600 ' $SUBTITLE: 'BATCHIT - subroutine to list files for batch downloading'
  1743. ' $PAGE
  1744. '
  1745.  SUB BATCHIT STATIC
  1746.       CALL PutCom (CHR$(7))
  1747.       CALL QuickTPUT ("Enter filenames on Separate lines! (EMPTY LINE ENDS )",1)
  1748.        ZWasB=1
  1749.        FOR BatchF = 2 TO 25
  1750.         ZOutTxt$ = "Name of file #" + STR$(Batchf-1)
  1751.         Call TGet
  1752.          IF ZUserIn$ = "" THEN GOTO 70415
  1753.           ZUserIn$(BatchF) = ZUserIn$
  1754.           ZAnsIndex = BatchF+1
  1755.         NEXT BatchF
  1756. 70415 BatchF =  BatchF-1
  1757.       ZLastIndex = BatchF
  1758.         End Sub
  1759. '
  1760. ' $SUBTITLE: 'TStat --- Display Transfer Stats from Xfer-? file'
  1761. ' $PAGE
  1762. '
  1763.       SUB TStats STATIC                                              ' MplXfer
  1764.       CALL OpenWork (2,"XFER-" + ZNodeID$ + ".DEF")                  ' MplXfer
  1765.       IF ZErrCode <> 0 THEN _
  1766.        Exit Sub                                                    'Pe 06/01/92
  1767.       CALL SkipLine (2)                                              ' MplXfer
  1768.       CALL QuickTPut1 (ZFG2$ + " Transfer Stats on this file were as Follows..." + ZCrLF$) ' MplXfer
  1769.       CALL QuickTPut1 (ZFG4$ + " FileName      Bytes  Dtr Rate    CPS      Errors " + ZCrLf$ + _ ' MplXfer
  1770.            ZFG3$ + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + ZEmphasizeOff$) ' MplXfer
  1771.       WHILE NOT EOF(2)                                               ' MplXfer
  1772.         LINE INPUT #2,Stat$                                          ' MplXfer
  1773.         WasS = INSTR(Stat$,"rs ")                                    ' MplXfer
  1774.         IF WasS > 0 THEN _                                           ' MplXfer
  1775.            WasX$ = MID$(Stat$, 2, WasS)                              ' MplXfer
  1776.         Match = INSTR(Stat$, ".")                                    ' MplXfer
  1777.         IF Match > 0 THEN _                                          ' MplXfer
  1778.            WasZyX$ = MID$(Stat$, Match - 8, 12)                      ' MplXfer
  1779.         Match = 0                                                    ' MplXfer
  1780.         Start = 1                                                    ' MplXfer
  1781.         DO                                                           ' MplXfer
  1782.           Match = INSTR(Start, WasZyX$, "\")                         ' MplXfer
  1783.           IF Match > 0 THEN _                                        ' MplXfer
  1784.              WasZyX$ = RIGHT$(WasZyX$, LEN(WasZyX$) - Match)         ' MplXfer
  1785.         LOOP WHILE Match                                             ' MplXfer
  1786.         Match = 0                                                    ' MplXfer
  1787.         Start = 1                                                    ' MplXfer
  1788.         DO                                                           ' MplXfer
  1789.           Match = INSTR(Start, WasZyX$, " ")                         ' MplXfer
  1790.           IF Match > 0 THEN _                                        ' MplXfer
  1791.              WasZyX$ = RIGHT$(WasZyX$, LEN(WasZyX$) - Match)         ' MplXfer
  1792.         LOOP WHILE Match                                             ' MplXfer
  1793.         WasXy = LEN(WasZyX$)                                         ' MplXfer
  1794.  
  1795.       IF ZErrCode <> 0 THEN _
  1796.        Exit Sub                                                    'Pe 06/01/92
  1797.  
  1798.      CALL QuickTPut1 (ZFG1$ + WasZyX$ + SPACE$(15-WasXy) + WasX$ + ZEmphasizeOff$) ' MplXfer
  1799.       WEND                                                           ' MplXfer
  1800.       CALL SkipLine (1)                                              ' MplXfer
  1801.       CLOSE 2                                                        ' MplXfer
  1802.       CALL DelayTime (3)                                             ' MplXfer
  1803.       END SUB                                                        ' MplXfer
  1804. '
  1805. ' $SUBTITLE: 'ShowBull --- Intitial Welcom screen displayed'
  1806. ' $PAGE
  1807. '
  1808.  Sub ShowBull (UsrSecLevel$) STATIC   'Pe 07/23/92
  1809. 71525 CALL SkipLine (2)
  1810.      WasX$ = ZFG1$+"Review System Screens Available:" + ZCrLf$ + _
  1811.              ZFG4$+"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
  1812. Call QuickTPut (WasX$,2)
  1813.      WasX$ = ZFG2$+"P)relog Screen"+ZCrLf$ + _
  1814.              ZFG3$+"W)elcome Screen" + ZCrLf$ + _
  1815.              ZFG4$+"O)nline News Screens"
  1816. Call QuickTPut (WasX$,1)
  1817.     WasX$ = ZFG1$+"Y)our Access Level" +ZCrLf$ + _
  1818.             ZFG2$+"N)ew User Sign-On" + ZCrLf$ + _
  1819.                   "[Q]uit"+ZEmphasizeOff$
  1820. Call QuickTPut (WasX$,2)
  1821. ZOutTxt$ = "Please make a Selection (P,W,O,Y,N,[Q]) "
  1822.         GOSUB 72999                     'Pe 04/25/92
  1823.         CALL AllCaps (ZUserIn$)
  1824.         WasMplX = INSTR("PWOYNQ",ZUserIn$)
  1825.         IF ZUserIn$ = "" THEN _
  1826.            GOTO 71596
  1827.     ON WasMplX GOTO 71530,71533,71536,71539,71541,71596
  1828. 71530 ZFileName$ = ZPreLog$
  1829.      GOTO 71550
  1830. 71533 ZFileName$ = ZWelcomeFile$
  1831.      GOTO 71550  
  1832. 71536 ZFileName$ = ZNewsFileName$
  1833.      GOTO 71550
  1834. 71539 ZFileName$ = ZWelcomeFileDrvPath$ + _      'Pe 07/19/92
  1835.                  "LG" + _
  1836.                  UsrSecLevel$ + _                'Pe 07/23/92
  1837.                  ".DEF"                          'Pe 06/01/92
  1838.      GOTO 71550
  1839. 71541 ZFileName$ = ZNewUserFile$
  1840. 71550 GOSUB 71790
  1841.      CALL AskMore ("",ZTrue,ZFalse,WasX,ZTrue)
  1842.      GOTO 71525
  1843. 71596 ZFileSysParm = 1
  1844.        Exit Sub
  1845. '
  1846. 71790 CALL Graphic (ZFileName$)
  1847.      CALL BufFile (ZFileName$,WasX)
  1848.      CALL Carrier
  1849.      IF ZSubParm = -1 THEN _
  1850.         ZFileSysParm = 7 : _
  1851.         Exit Sub
  1852.      RETURN
  1853.  
  1854. 72995 GOSUB 72997
  1855.       ZSubParm = 1
  1856. 72996 CALL TGet
  1857. 72997 IF ZSubParm < 0 THEN _
  1858.       ZFileSysParm = 7 :_
  1859.          Exit Sub
  1860.       RETURN
  1861. 72998 ZOutTxt$ = ZOutTxt$ + _
  1862.            ZPressEnter$
  1863.       GOTO 72995
  1864. 72999 ZTurboKey = -ZTurboKeyUser
  1865.       GOTO 72995
  1866. End Sub
  1867. '
  1868. ' $SUBTITLE: 'Line108 --- was line 108 in RBBS-PC.BAS'
  1869. ' $PAGE
  1870. '
  1871.  Sub line108 STATIC   'Pe 07/23/92
  1872.  
  1873.  CALL BreakFileName (ZCallersFile$,Drive$,WasX$,ZWasY$,ZTrue)
  1874.     ZCallersFilePrefix$ = WasX$
  1875.     ZNodeWorkDrvPath$ = Drive$
  1876.     ZArcWork$ = ZNodeWorkDrvPath$ + _
  1877.                 "ARCWORK" + _
  1878.                 ZNodeFileID$ + _
  1879.                 ".DEF"
  1880.     IF ZUseBASICWrites THEN _
  1881.        ZLocalBksp$ = ZBackArrow$ _
  1882.     ELSE ZLocalBksp$ = ZBackSpace$
  1883.     ZSysopFullName$ = LEFT$(ZSysopFirstName$ + " " + ZSysopLastName$ + "  ",22)
  1884.     ZFastFileSearch = ZFalse
  1885.     CALL FindIt (ZFastFileList$)
  1886.     IF ZOK THEN _
  1887.        CALL FindIt (ZFastFileLocator$) : _
  1888.        IF ZOK THEN _
  1889.           ZFastFileSearch = ZTrue : _
  1890.           CALL BreakFileName (ZFastFileList$, Drive$,WasX$,ZWasY$,ZTrue) : _
  1891.           ZFileName$ = Drive$ + WasX$ + "T" + ZWasY$ : _
  1892.           CALL FindIt (ZFileName$) : _
  1893.           IF ZOK THEN _
  1894.              CALL OpenRSeq (ZFileName$, WasX, WasY, 72) : _
  1895.              FIELD 2, 72 AS IndexRec$ : _
  1896.              GET 2, 1 : _
  1897.              ZFastTabs$ = IndexRec$ : _
  1898.              CLOSE 2 _
  1899.           ELSE ZFastTabs$ = ""
  1900. '
  1901. ' *****  INITIALIZE NetBIOS INTERFACE   ****
  1902. '
  1903.    IF ZNetworkType = 6 AND NOT ZSubBoard THEN _
  1904.       CALL InitIBM
  1905. '
  1906. ' *****  ESTABLISH NEXT CALLERS FILE RECORD AVAILABLE   ***
  1907. '
  1908.     CALL SetCall
  1909.  IF NOT ZSubBoard THEN _
  1910.        ZLocalUser = ZTrue : _
  1911.        ZOutTxt$ = ZColorReset$ : _
  1912.        ZSubParm = 1 : _
  1913.        CALL TPut : _
  1914.        ZLocalUser = ZFalse
  1915.     ZUpldDriveFile$ = RIGHT$(ZDnldDrives$,1)+":FREESPAC.UPL"
  1916.     ZMinsPerSessionDef = ZMinsPerSession
  1917.     ZMaxPerDayDef = ZMaxPerDay
  1918.     ZMaxBankTimeDef = ZMaxBank
  1919. End Sub
  1920.